我见过以下示例:
[Serializable]
public class TestFailedException : Exception { do stuff;}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这个"[Serializable]"的官方术语?它是某种索引属性吗?
谢谢
这些术语是attributes.
属性将一些元数据添加到代码中.他们自己不会以常规方式执行.他们添加了一些关于方法或类的额外信息.当调用这样的装饰方法(或类)时,购买代码的不同部分,该代码可以查询元数据并相应地执行某些操作.
您可以使用反射来查询方法(或类)上的属性.看到这里.
在您的特定示例中,[Serializable]属性告诉CLR给定此类的实例,该对象中的字段值可以序列化,即可以通过网络发送,或者可以写入磁盘.从这个角度来看,[Serializable]属性不以任何方式添加该功能,或者在序列化过程中有所帮助,只是它携带CLR应该允许序列化的元数据.