.NET中的属性是什么,它们有什么好处,我如何创建自己的属性?


当前回答

您可以使用自定义属性作为在子类中定义标记值的简单方法,而不必为每个子类反复编写相同的代码。我看到John Waters写的一个很好的简洁示例,介绍了如何在自己的代码中定义和使用自定义属性。

在http://msdn.microsoft.com/en-us/library/aa288454(VS.71).aspx上有一个教程

其他回答

本质上,属性是您想要附加到类型(类、方法、事件、枚举等)的数据位。

其思想是,在运行时,一些其他类型/框架/工具将在属性中查询您的类型的信息并对其进行操作。

因此,例如,Visual Studio可以查询第三方控件上的属性,以确定控件的哪些属性应该在设计时出现在“属性”窗格中。

属性还可以在面向方面编程中使用,在运行时根据装饰它们的属性注入/操作对象,并向对象添加验证、日志记录等,而不影响对象的业务逻辑。

您可以使用自定义属性作为在子类中定义标记值的简单方法,而不必为每个子类反复编写相同的代码。我看到John Waters写的一个很好的简洁示例,介绍了如何在自己的代码中定义和使用自定义属性。

在http://msdn.microsoft.com/en-us/library/aa288454(VS.71).aspx上有一个教程

要开始创建一个属性,打开一个c#源文件,输入attribute并点击[TAB]。它将展开为一个新属性的模板。

属性就像应用于类、方法或程序集的元数据。

它们适用于任何数量的事情(调试器可视化,标记为过时的东西,标记为可序列化的东西,列表是无限的)。

创建您自己的自定义是很容易的。从这里开始:

http://msdn.microsoft.com/en-us/library/sw480ze8 (VS.71) . aspx

属性也通常用于面向方面编程。要获得这样的示例,请查看PostSharp项目。