它能做任何事情还是仅用于文档。如果仅用于文档,为什么文档不记录它?
比如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 文档甚至没有提到 Copy
或 ConstrainedCopy
有注释。
最佳答案
我相信它们也用于受限执行区域,因此 CLR 知道它可以安全地做什么。您的代码在 CER 中无法执行某些操作,作为返回,CLR 保证不会引发某些带外异常。
MSDN有更多细节。
关于c# - ReliabilityContractAttribute 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/748319/