我知道属性非常有用。有一些预定义的属性,例如[Browsable(false)],它允许您在财产选项卡中隐藏财产。下面是一个解释属性的好问题:.NET中的属性是什么?
您在项目中实际使用的预定义属性(及其名称空间)是什么?
我知道属性非常有用。有一些预定义的属性,例如[Browsable(false)],它允许您在财产选项卡中隐藏财产。下面是一个解释属性的好问题:.NET中的属性是什么?
您在项目中实际使用的预定义属性(及其名称空间)是什么?
当前回答
我喜欢将[ThreadStatic]属性与基于线程和堆栈的编程结合使用。例如,如果我希望一个值与调用序列的其余部分共享,但我希望在带外(即调用参数之外)执行,我可以使用类似的方法。
class MyContextInformation : IDisposable {
[ThreadStatic] private static MyContextInformation current;
public static MyContextInformation Current {
get { return current; }
}
private MyContextInformation previous;
public MyContextInformation(Object myData) {
this.myData = myData;
previous = current;
current = this;
}
public void Dispose() {
current = previous;
}
}
稍后在我的代码中,我可以使用它向代码下游的人提供带外的上下文信息。例子:
using(new MyContextInformation(someInfoInContext)) {
...
}
ThreadStatic属性允许我将调用范围仅限于所讨论的线程,避免了跨线程访问数据的混乱问题。
其他回答
值得一提的是,这里列出了所有.NET属性。有几百个。
我不知道其他人,但我有一些严肃的RTF要做!
在我看来,过时是框架中最有用的属性之一。对不应再使用的代码发出警告的功能非常有用。我喜欢有一种方法告诉开发人员不应该再使用某些东西,也喜欢有一个方法来解释为什么,并指出更好的/新的做法。
Conditional属性对于调试使用也非常方便。它允许您在代码中添加用于调试的方法,这些方法在构建解决方案以供发布时不会被编译。
然后,我发现有很多特定于Web控件的属性很有用,但这些属性更具体,在我发现的服务器控件开发之外没有任何用处。
[DeploymentItem(“myFile1.txt”)]DeploymentItem上的MSDN文档
如果您正在对文件进行测试或将该文件用作测试的输入,那么这非常有用。
我发现[DefaultValue]非常有用。
我最近一直在使用[DataObjectMethod]。它描述了方法,因此您可以将类与ObjectDataSource(或其他控件)一起使用。
[DataObjectMethod(DataObjectMethodType.Select)]
[DataObjectMethod(DataObjectMethodType.Delete)]
[DataObjectMethod(DataObjectMethodType.Update)]
[DataObjectMethod(DataObjectMethodType.Insert)]
更多信息