Welcome

首页 / 软件开发 / C# / C#中属性类的作用

C#中属性类的作用2011-06-30 csdn博客 jinjazz这个问题来自论坛提问,对于初学者来说确实比较陌生,msdn参考文档

http://msdn.microsoft.com/zh-cn/library/system.attribute.aspx

我们先直观的表达一下他的作用之一:

比如一个自定义windows控件的DefaultEvent可以表示一个控件默认事件:

如你双击form他会默认到onLoad事件中,双击button,他会默认到onclick事件中。

一个简单的测试,你添加一个windows窗体1叫Form1,然后增加如下代码

[DefaultEvent("FormClosed")]

public partial class Form1 : Form

然后新建一个窗体2,继承自窗体1

public partial class Form2 : Form1然后把Form2切换到设计器的模式,然后双击Form2的工作区域,会直接定位到代码的 private void Form2_FormClosed(object sender,FormClosedEventArgs e)
...{

}而不是先前的 private void Form2_Load(object sender, EventArgs e)
...{
}

对于这个语法比较好奇的朋友请仔细阅读上面msdn的参考文档.

简要的说他不是系统规定死的写法,是属性类,

可以在运行期去决定做什么,就像一般的类.

除了系统已经定义的还可以自己定义.

中括号中的语法其实就是一个类的构造函数的调用.

我们可以通过反射得到属性类的实例.

属性类可以修饰类,变量,属性,成员函数,事件等