最有用的属性
我知道属性非常有用。 有一些预定义的例如[Browsable(false)]
,它允许您隐藏属性选项卡中的属性。 这是一个很好的解释属性的问题:什么是.NET中的属性?
什么是您在项目中实际使用的预定义属性(及其名称空间)?
[DebuggerDisplay]
对于在调试过程中将鼠标悬停在类型实例上时可以快速查看Type的自定义输出。 例:
[DebuggerDisplay("FirstName={FirstName}, LastName={LastName}")]
class Customer
{
public string FirstName;
public string LastName;
}
这是它在调试器中的外观:
替代文字http://serialize.wordpress.com/files/2008/10/temp.jpg
此外,值得一提的是,具有CacheDuration
属性集的[WebMethod]
属性可以避免不必要的Web服务方法执行。
在我看来, System.Obsolete
是框架中最有用的属性之一。 能够提出有关不再使用的代码的警告是非常有用的。 我喜欢有一种方法可以告诉开发者不应该再使用某些东西,并且有办法解释为什么并指出更好/新的做事方式。
对于调试使用情况, Conditional attribute
也非常方便。 它允许您在代码中添加方法以用于调试目的,在您构建发布解决方案时不会进行编译。
然后,我发现很多特定于Web控件的属性都很有用,但这些属性更具体,并且除了我所发现的服务器控件开发之外,没有任何用途。
[Flags]
非常方便。 句法糖是肯定的,但仍然相当不错。
[Flags]
enum SandwichStuff
{
Cheese = 1,
Pickles = 2,
Chips = 4,
Ham = 8,
Eggs = 16,
PeanutButter = 32,
Jam = 64
};
public Sandwich MakeSandwich(SandwichStuff stuff)
{
Console.WriteLine(stuff.ToString());
// ...
}
// ...
MakeSandwich(SandwichStuff.Cheese
| SandwichStuff.Ham
| SandwichStuff.PeanutButter);
// produces console output: "Cheese, Ham, PeanutButter"
Leppie指出了一些我没有意识到的东西,并且这抑制了我对这个属性的热情:它并没有指示编译器允许位组合作为枚举变量的有效值,编译器允许这样的枚举。 我的C ++背景通过......感叹
链接地址: http://www.djcxy.com/p/65149.html