C#属性会影响C#执行还是影响输出?

C#属性会影响C#执行还是影响输出?,c#,c#-4.0,C#,C# 4.0,在语法上,我理解C#属性是如何应用的(即用方括号[]表示)但添加属性的实际效果并不明显。 例如: 属性是一种注释类型吗 C#编译器如何处理这些属性 这些C#属性会以任何方式改变C#程序的执行吗 属性不是注释;它们是添加到C#中“things”元数据中的类。我所说的“事物”是指类、属性、方法等 属性绝对可以更改程序的执行。。。如果某物使用反射来读取属性并对其执行操作。例如[DataMember]属性将允许DataContractSerializer在序列化对象中包含该成员。MEF代码将把[Exp

在语法上,我理解C#属性是如何应用的(即用方括号[]表示)但添加属性的实际效果并不明显。

例如:

  • 属性是一种注释类型吗
  • C#编译器如何处理这些属性
  • 这些C#属性会以任何方式改变C#程序的执行吗

属性不是注释;它们是添加到C#中“things”元数据中的类。我所说的“事物”是指类、属性、方法等

属性绝对可以更改程序的执行。。。如果某物使用反射来读取属性并对其执行操作。例如
[DataMember]
属性将允许
DataContractSerializer
在序列化对象中包含该成员。MEF代码将把
[Export]
属性作为插件拾取

还有许多其他示例,您也可以创建自己的示例。
有关属性的更多信息,请参见:

属性是一种强大的构造,可以间接影响代码执行。您可以使用反射检查self或其他类,并根据某些属性的存在改变行为


请看《c#编程指南》:

否这些不用于评论。通常,它们用于注释方法、类等,以执行分析和自动化任务,如反射