我正在使用代码合同(实际上,学习使用这个).
我正在面对一些奇怪的东西,我覆盖了一个在第三方大会定义的方法.我想添加一个Contract.Require语句,如下所示:
public class MyClass: MyParentClass { protected override void DoIt(MyParameter param) { Contract.Requires<ArgumentNullException>(param != null); this.ExecuteMyTask(param.something); } protected void ExecuteMyTask(MyParameter param) { Contract.Requires<ArgumentNullException>(param != null); /* body of the method */ } }
但是,我收到如下警告:
Warning 1 CodeContracts:
Method ‘MyClass.DoIt(MyParameter)’ overrides ‘MyParentClass.DoIt(MyParameter))’,thus cannot add Requires.
如果我在DoIt方法中删除了Contract.Requires,我会收到另一个警告,告诉我我必须提供未经证实的param!= null
我不明白这个警告.是什么原因,我可以解决吗?
解决方法
原文地址:https://www.jb51.cc/csharp/96044.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。