Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ReliabilityContractAttribute做什么?_C#_.net_Vb.net_Attributes - Fatal编程技术网

C# ReliabilityContractAttribute做什么?

C# ReliabilityContractAttribute做什么?,c#,.net,vb.net,attributes,C#,.net,Vb.net,Attributes,它是否有任何作用,或者只是用于文档。如果它只用于文档,为什么文档不记录它 例如,System.Array的这两个静态方法: [ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)] public static void Copy(Array sourceArray, Array destinationArray, int length) [ReliabilityContract(Consistency.WillNotC

它是否有任何作用,或者只是用于文档。如果它只用于文档,为什么文档不记录它

例如,
System.Array
的这两个静态方法:

[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]
public static void Copy(Array sourceArray, Array destinationArray, int length)

[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
public static void ConstrainedCopy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length)
他们生成的MSDN文档甚至没有提到这一点,也没有注释。

来源:

ReliabilityContractAttribute 属性为您提供了一种机制 记录您的代码,并指示 什么类型的可靠性保证 你可以面对 可能导致 可能导致不一致的 国家。在这方面,例外情况 条件定义为异步 可在以下位置生成的异常: 使用公共语言运行时 运行时,例如中止的线程, 内存不足的情况,以及堆栈 溢出。你可以申请 可靠性ContractAttribute属性 到程序集、类型和方法

将此属性与 一致性枚举以定义 可靠性合同的文件化 系统的可靠性水平 特定的代码段


我相信它们也用于受约束的执行区域,所以CLR知道它可以安全地执行什么。有些事情是您的代码在CER中无法完成的,作为回报,CLR保证不会抛出某些带外异常


有更多细节。

有。我读过这个。那么,为什么这个文档被忽略了?@PavelMayorov:链接到一个看起来合理的MSDN页面;我不知道MSDN杂志页面是否仍然存在。