我面临一个我无法弄清楚的问题。
假设我有两种方法:public void Method1(object obj)
在ViewModel
课堂上和public void Method2(object obj)
课堂Model
上。
Method2
从Method1
使用Model
类的实例调用(例如,objM 是类的对象和Model
类的成员ViewModel
)。
class ViewModel
{
public void Methods1(object obj)
{
if (!(
( (false == this.HasSal)
&& (typeof(Class1) == obj.GetType())
)
||
( (true == this.HasSal)
&& (typeof(Class2) == obj.GetType())
)
)
)
{
throw new ArgumentException("invalid obj");
}
Contract.EndContractBlock();
objM.Method2(obj);
.....
}
}
class Model
{
public void Method2(object obj)
{
Contract.Requires(
( (false == this.HasSal)
&& (typeof(Class1) == obj.GetType())
)
||
( (true == this.HasSal)
&& (typeof(Class2) == obj.GetType())
)
);
.....
}
}
现在,每当我尝试构建代码时,Visual Studio 都会产生以下警告
Code contracts: Requires unproven
(
( (false == this.HasSal)
&& (typeof(Class1) == obj.GetType())
)
||
( (true == this.HasSal)
&& (typeof(Class2) == obj.GetType())
)
)
请建议。