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

Yu *_*ang 0 c#

我见过以下示例:

[Serializable]
public class TestFailedException : Exception { do stuff;}
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这个"[Serializable]"的官方术语?它是某种索引属性吗?

谢谢

inq*_*ive 5

这些术语是attributes.

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

您可以使用反射来查询方法(或类)上的属性.看到这里.

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