我见过以下示例:
[Serializable]
public class TestFailedException : Exception { do stuff;}
任何人都可以告诉我这个官方术语" [Serializable]"?它是某种索引属性吗?
由于
答案 0 :(得分:5)
这些术语是attributes
。
属性将一些元数据添加到代码中。他们自己不会以常规方式执行。他们添加了一些关于方法或类的额外信息。当这样的装饰方法(或类)被调用时,购买代码的不同部分,该代码可以查询元数据并相应地执行某些操作。
您可以使用反射来查询方法(或类)上的属性。请参阅here。
在您的特定示例中,[Serializable]属性告诉CLR给定此类的实例,该对象中的字段值可以序列化,即可以通过网络发送,或者可以写入磁盘。从这个角度来看,[Serializable]属性不以任何方式添加该功能,或者在序列化的过程中提供帮助,只是它带有CLR应该允许序列化的元数据。
答案 1 :(得分:2)
这是Attribute
https://msdn.microsoft.com/en-us/library/z0w1kczw.aspx
我也听过有人将其称为Annotations
,但这更像是Java
一词。