C#中方括号之间字符串的名称是什么?

时间:2015-05-11 04:14:15

标签: c#

我见过以下示例:

[Serializable]
public class TestFailedException : Exception { do stuff;}

任何人都可以告诉我这个官方术语" [Serializable]"?它是某种索引属性吗?

由于

2 个答案:

答案 0 :(得分:5)

这些术语是attributes

属性将一些元数据添加到代码中。他们自己不会以常规方式执行。他们添加了一些关于方法或类的额外信息。当这样的装饰方法(或类)被调用时,购买代码的不同部分,该代码可以查询元数据并相应地执行某些操作。

您可以使用反射来查询方法(或类)上的属性。请参阅here

在您的特定示例中,[Serializable]属性告诉CLR给定此类的实例,该对象中的字段值可以序列化,即可以通过网络发送,或者可以写入磁盘。从这个角度来看,[Serializable]属性不以任何方式添加该功能,或者在序列化的过程中提供帮助,只是它带有CLR应该允许序列化的元数据。

答案 1 :(得分:2)

这是Attribute https://msdn.microsoft.com/en-us/library/z0w1kczw.aspx

我也听过有人将其称为Annotations,但这更像是Java一词。