我有以下内容 enum
public enum myEnum
{
ThisNameWorks,
This Name doesn't work
Neither.does.this;
}
Run Code Online (Sandbox Code Playgroud)
enum
带有"友好名字"的s 不可能吗?
据我了解,你应该使用这个Environment.GetFolderPath
方法,所以你有独立于操作系统的代码......
Windows XP使用C:\Documents and Settings\
.Windows Vista使用C:\ProgramData
和C:\Users
.
我在Windows Vista计算机上使用下面的代码,它正在返回一个C:\Documents and Settings\
目录而不是C:\ProgramData
它应该...任何想法?
string commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
try
{
File.CreateText(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) +
"\\mycompany\\uid");
log.Debug("Created file successfully");
}
catch (Exception ex)
{
log.Error("Unable to create the uid file: ", ex);
}
Run Code Online (Sandbox Code Playgroud) 我想安排一个任务以x ms开始,并能够在它开始之前取消它(或者只是在任务开始时).
第一次尝试就像是
var _cancelationTokenSource = new CancellationTokenSource();
var token = _cancelationTokenSource.Token;
Task.Factory.StartNew(() =>
{
token.ThrowIfCancellationRequested();
Thread.Sleep(100);
token.ThrowIfCancellationRequested();
}).ContinueWith(t =>
{
token.ThrowIfCancellationRequested();
DoWork();
token.ThrowIfCancellationRequested();
}, token);
Run Code Online (Sandbox Code Playgroud)
但我觉得应该有一个更好的方法,因为这会在睡眠中耗尽一个线程,在此期间它可以被取消.
我还有什么其他选择?
我在C#app中有简单的方法,它从FTP服务器中挑选文件并解析它并将数据存储在DB中.我希望它是异步的,以便用户在App上执行其他操作,一旦完成解析,他必须得到消息"解析完成".
我知道它可以通过异步方法调用实现,但我不知道该怎么做才能有人帮助我吗?
我经常在Stack Overflow上阅读这些语句.就个人而言,我没有发现任何问题,除非我以多态方式使用它; 即我必须使用virtual
析构函数.
如果我想扩展/添加标准容器的功能那么什么是比继承一个更好的方法?将这些容器包装在自定义类中需要更多的努力并且仍然是不洁净的.
为谓词助手类编写一些XML文档.但我无法弄清楚我可以参考一个Expression<Func<T, bool>>
没有得到语法错误.它甚至可能吗?我试过这个:
<see cref="Expression{Func{T, bool}}"/>
Run Code Online (Sandbox Code Playgroud)
但我得到一条红色的波浪线{T, bool}}
.这有效:
<see cref="Expression{TDelegate}"/>
Run Code Online (Sandbox Code Playgroud)
有人有线索吗?
更新:
给出的答案(我接受了)似乎确实奏效了.但是现在我已经开始收到很多关于无法解决的问题的警告.我有一个叫做类ExpressionBuilder<T>
,其作品有Expression<Func<T, bool>>
很多.所以我当然想在我的XML评论中引用它.
我尝试了两个我知道的版本:
<see cref="Expression<Func<T, Boolean>>"/>
<see cref="Expression{Func{T, Boolean}}"/>
Run Code Online (Sandbox Code Playgroud)
但是没有工作.(在最后一个问题上,ReSharper下了一个蓝色的波浪形,{T,Boolean}}
我在编辑过程中得到两个警告,我用过它时说:
- 关于'blah blah'的XML注释具有无法解析的cref属性'Expression>'
- 类型参数声明必须是标识符而不是类型.另请参见错误CS0081.
在我试图引用的某个地方有同样的问题Range<Nullable<DateTime>>
(也Range<DateTime?>
没有用.{}和with < >
)
我不应该提到这些种类的仿制药吗?
当我想重绘窗口时,InvalidateRect和RedrawWindow之间是否有任何首选函数?
例如,这两个调用是否相等:(win将是HWND)
RedrawWindow(win, NULL, NULL, RDW_INVALIDATE);
InvalidateRect(win, NULL, NULL);
主要问题:我什么时候应该使用其中一个?背景中是否存在任何差异?(不同的WM_messages /焦点/顺序/优先级..)
我想重绘窗口的原因是因为我向它发送了一个我希望它显示的新图像,这意味着窗口的内容不再有效.
我有一个UserControl
包含一个TextBox
.当我的主窗口加载时,我想将焦点设置到此文本框,所以我添加Focusable="True" GotFocus="UC_GotFocus"
到UserControl
s定义和FocusManager.FocusedElement="{Binding ElementName=login}"
我的主窗口定义.在UC_GotFocus
方法中,我只是调用.Focus()
我想要关注的控件,但这不起作用.
我需要做的就是在应用程序启动时有TextBox
一个UserControl
接收焦点.
任何帮助将不胜感激,谢谢.
我上了课FruitViewModel
.它描述了ListBox
项目的ViewModels .
<ListBox ItemsSource="{Binding Fruits}">
Run Code Online (Sandbox Code Playgroud)
而且我有
class BananaViewModel : FruitViewModel
Run Code Online (Sandbox Code Playgroud)
和
class AppleViewModel : FruitViewModel
Run Code Online (Sandbox Code Playgroud)
Fruits
包含绑定的BananaViewModel
s和AppleViewModel
s ItemsSource
.
如何为苹果和香蕉制作不同的模板?它们应该在一个列表中,但具有不同的模板
c# ×6
.net ×2
c++ ×2
wpf ×2
asynchronous ×1
delegates ×1
enums ×1
file ×1
focus ×1
focusmanager ×1
generics ×1
inheritance ×1
itemtemplate ×1
listbox ×1
redraw ×1
rename ×1
resharper ×1
winapi ×1