作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为这个通用接口(interface)指定一个契约(Contract),使用代码契约(Contract):
interface IRandomWriteAccessible<T>
{
T this[uint index] { set; }
uint Length { get; }
}
ContractClass
为接口(interface)指定契约时的属性。但是,编译器会提示这个:
[ContractClass(typeof(IRandomWriteAccessibleContract<T>))]
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <-- compiler error
interface IRandomWriteAccessible<T> { … }
[ContractClassFor(typeof(IRandomWriteAccessible<T>))]
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <-- compiler error
sealed class IRandomWriteAccessibleContract<T> : IRandomWriteAccessible<T> { … }
最佳答案
正如此问题中的其他评论所述,您应该从属性使用中删除泛型类型标识符,因为它无法在编译时解决:
[ContractClass(typeof(IRandomWriteAccessibleContract<>))]
关于.net - 代码契约(Contract) : How do I supply a contract class for a generic interface?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2150983/
我是一名优秀的程序员,十分优秀!