最近一个朋友问我C#中经常有使用[XXX]方括号是什么作用?是啊,我是经常使用,还真没有深入的看。关于特性Attribute想来想去还是微软定义的准确就搬些来“
Attribute 类将预定义的系统信息或用户定义的自定义信息与目标元素相关联。目标元素可以是程序集、类、构造函数、委托、枚举、事件、字段、接口、方法、可移植可执行文件模块、参数、属性、返回值、结构或其他特性。
特性所提供的信息也称为元数据。元数据可由应用程序在运行时进行检查以控制程序处理数据的方式,也可以由外部工具在运行前检查以控制应用程序处理或维护自身的方式。例如,.NET Framework 预定义特性类型并使用特性类型控制运行时行为,某些编程语言使用特性类型表示 .NET Framework 常规类型系统不直接支持的语言功能。
所有特性类型都直接或间接地从 Attribute 类派生。特性可应用于任何目标元素;多个特性可应用于同一目标元素;并且特性可由从目标元素派生的元素继承。使用 AttributeTargets 类可以指定特性所应用到的目标元素。”
特性绑定个人观点,类似于虚函数,只是绑定方向是各种元素去绑定已经预定的元素。
最好理解的地方是如下:
如该代码中的[STAThread]的作用就是把自己所建的项目中自定义的Run起始位置与启动线程绑定。