我知道属性非常有用。有一些预定义的属性,例如[Browsable(false)],它允许您在财产选项卡中隐藏财产。下面是一个解释属性的好问题:.NET中的属性是什么?
您在项目中实际使用的预定义属性(及其名称空间)是什么?
我知道属性非常有用。有一些预定义的属性,例如[Browsable(false)],它允许您在财产选项卡中隐藏财产。下面是一个解释属性的好问题:.NET中的属性是什么?
您在项目中实际使用的预定义属性(及其名称空间)是什么?
当前回答
我的投票将是有条件的
[Conditional("DEBUG")]
public void DebugOnlyFunction()
{
// your code here
}
您可以使用它添加具有高级调试功能的函数;与Debug.Write类似,它只在调试构建中调用,因此允许您将复杂的调试逻辑封装在程序的主流之外。
其他回答
我总是使用属性,[Serializable]、[WebMethod]、[DefaultValue]、[Description(此处为“Description”)]。
但除此之外,c#中还有一个全局属性。
[assembly: System.CLSCompliant(true)]
[assembly: AssemblyCulture("")]
[assembly: AssemblyDescription("")]
我使用最多的属性是与XML序列化相关的属性。
XmlRoot
Xml元素
XmlAttribute
等
在进行任何快速而肮脏的XML解析或序列化时非常有用。
当您在调试期间将鼠标悬停在Type的实例上时,[DuggerDisplay]对于快速查看该类型的自定义输出非常有用。例子:
[DebuggerDisplay("FirstName={FirstName}, LastName={LastName}")]
class Customer
{
public string FirstName;
public string LastName;
}
这是它在调试器中的外观:
此外,值得一提的是,设置了CacheDuration属性的[WebMethod]属性可以避免不必要地执行web服务方法。
如果我要进行代码覆盖率爬网,我认为这两个将是最好的:
[Serializable]
[WebMethod]
作为我喜欢的中间层开发人员
System.ComponentModel.EditorBrowsableAttribute允许我隐藏财产,以便UI开发人员不会被他们不需要看到的财产淹没。
System.ComponentModel.BindableAttribute有些东西不需要数据绑定。同样,减少了UI开发人员需要做的工作。
我也喜欢劳伦斯·约翰斯顿提到的默认值。
System.ComponentModel.BrowsableAttribute和Flags定期使用。
我使用System.STAThreadAttributeSystem.ThreadStaticAttribute当需要时。
顺便说一句这些对所有.Net框架开发人员来说都同样重要。