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

时间:2017-08-08 23:43:32

标签: c# c#-4.0

从语法上讲,我理解如何应用C#属性(即用方括号[]表示)。 但添加属性实际上有什么影响并不明显。

例如:

  • 属性是否属于评论类型?
  • C#编译器如何处理这些属性?
  • 这些C#属性会以任何方式改变C#程序执行吗?

2 个答案:

答案 0 :(得分:4)

属性不是评论;它们是被添加到"事物"的元数据中的类。在C#中。通过"事物"我指的是类,属性,方法等。

绝对的属性可以更改程序的执行...如果某些内容使用Reflection来读取和处理属性。例如; [DataMember]属性将允许DataContractSerializer将该成员包含在序列化对象中。 MEF代码将[Export]属性作为插件获取。

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

答案 1 :(得分:0)

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

查看c#编程指南:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/