没有在StyleCop帮助手册中找到它,在SO和Google上,所以这里是;)
在StyleCop使用期间,我有一个警告:
SA1121 - UseBuiltInTypeAlias - 可读性规则
代码使用其中一种基本C#类型,但不使用该类型的内置别名.
不应使用类型名称或完全限定类型名称,应始终使用这些类型的内置别名:bool,byte,char,decimal,double,short,int,long,object,sbyte,float,string ,ushort,uint,ulong.
所以String.Empty是错的(取决于上述规则)并且string.Empty是好的.
为什么使用内置别名更好?可以String. Int32,Int64(等)在特殊情况下的代码中复杂化吗?
我已成功在我的应用程序中配置了log4net,但有一件事对我来说有点烦人.
即使没有错误发生,我的应用程序启动后也会创建(空)日志文件.我想在出现一些错误后才创建日志文件.
我搜索了SO但却一无所获.
为什么这不起作用?
Directory.Delete(@"E:\3\{90120000-001A-0000-0000-0000000FF1CE}-C");
Run Code Online (Sandbox Code Playgroud)
上面的行将抛出异常"访问被拒绝".我有管理员权限,我可以用资源管理器删除目录.
它看起来像一些禁止的字符?但Windows资源管理器可以处理它.如何删除名称相似的目录?
通常我做的就是这样(只是一个例子):
using (Stream xmlStream = client.OpenRead(xmlUrl))
{
using (XmlTextReader xmlReader = new XmlTextReader(xmlStream))
{
}
}
Run Code Online (Sandbox Code Playgroud)
不仅仅是做得更好:
using (XmlTextReader xmlReader = new XmlTextReader(client.OpenRead(xmlUrl)))
{
}
Run Code Online (Sandbox Code Playgroud)
但是我不确定在这个简短的语法中是否所有资源都将被处理(流)或只有XmlTextReader?
提前感谢您的回答.
我想用来自Resources的字符串显示带有换行符的MessageBox(WinForms).
没有资源的示例(WORKS):
string someMsg = "Message. Details:\n" + someDetails;
MessageBox.Show(someMsg);
Run Code Online (Sandbox Code Playgroud)
结果:
信息.细节:
这里有一些细节
当我将字符串"消息.详细信息:\n"移动到资源中时:
string someMsg = GlobalStrings.MsgBoxJustTest + someDetails;
MessageBox.Show(someMsg);
Run Code Online (Sandbox Code Playgroud)
结果:
信息.细节:\有一些细节
当我用"\n"将字符串移动到资源时,MessageBox.Show()停止将其解释为换行符.
编辑:我在想:someMsg.Replace(@'\n',Environment.NewLine); 但对于如此简单的事情,它仍然很烦人.
我用XMLSerializer类做了一些事情.像大多数初学者一样,我在app start上面临性能问题.我阅读了很多博客,文章,最后使用了SGEN工具.现在性能看起来还不错,但对我来说仍然很少有事情要做.
1)我应该像这样使用SGEN语法:
SGen.exe /assembly:MyAssembly /type:MyRootXmlType
Run Code Online (Sandbox Code Playgroud)
或者它就足够了(我目前使用这种语法,我的程序集中只有一个Serializable类):
SGen.exe /assembly:MyAssembly
Run Code Online (Sandbox Code Playgroud)
什么时候/ type参数在实践中有用?
2)我在MSDN上阅读(http://msdn.microsoft.com/en-us/library/ee704594.aspx)
此命令生成序列化程序集MyAssembly.XmlSerializers.dll,应将其添加为对当前项目或GAC的引用.
但是在所有其他博客和文章上(例如在SO上)我读到这就足以将MyAssembly.XmlSerializers.dll放入MyAssembly存在的文件夹中.
什么是对的?
3)只需生成.XmlSerilizers.dll并将其与MyAssembly一起部署就足够了,还是应该在我的代码中添加一些东西?
我不这么认为,但我想确保我不必更改我的代码并且"魔法"会自动发生.
在我的笔记本电脑(戴尔)中,使用网络摄像头时会发出强烈的蓝色二极管光,这让我很恼火。
我正在考虑禁用它。你知道有什么库或方法可以关闭这个二极管灯吗?
c# ×7
winforms ×2
c++ ×1
localization ×1
log4net ×1
messagebox ×1
rules ×1
sgen ×1
stylecop ×1