属性(C# 编程指南)
更新: 2008 年 7 月
属性提供功能强大的方法以将声明信息与 C# 代码(类型、方法、属性等)相关联。属性与程序实体关联后,即可在运行时使用名为“反射”的技术查询属性。有关更多信息,请参见反射(C# 编程指南)。
属性以两种形式出现:
一种是在公共语言运行时 (CLR) 中定义的属性。
另一种是可以创建的用于向代码中添加附加信息的自定义属性。此信息可在以后以编程方式检索。
在本例中,属性 TypeAttributes.Serializable 用来将特定特性应用于类:
[System.Serializable]
public class SampleClass
{
// Objects of this type can be serialized.
}
属性概述
属性具有以下特点:
属性可向程序中添加元数据。元数据是有关在程序中定义的类型的信息。所有的 .NET 程序集都包含指定的一组元数据,这些元数据描述在程序集中定义的类型和类型成员。可以添加自定义属性,以指定所需的任何附加信息。
程序可以使用反射检查自己的元数据或其他程序内的元数据。有关更多信息,请参见使用反射访问属性(C# 编程指南)。
MarshallAsare 等属性在 COM 互操作方案中得到了广泛使用。有关更多信息,请参见 System.Runtime.InteropServices.MarshalAsAttribute 和 System.Runtime.InteropServices.StructLayoutAttribute。
相关章节
有关更多信息,请参见:
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各节:
10.2.1 属性
17 属性
请参见
概念
参考
修订记录
日期 |
历史记录 |
原因 |
---|---|---|
2008 年 7 月 |
更新了概述部分。 |
内容 Bug 修复 |