我试着在调试时使用c# contracts...but编写这个方法,它完全忽略了Contract.requires和CheckRep(),我用错了吗??
public Poly Add(Poly q)
{
CheckRep();
Contract.Requires(q != null, "You need to provide a valid non-null Poly.");
Poly la, sm;
if (deg > q.deg)
{
la = this; sm = q;
}
else
{
la = q; sm = this;
}
int newdeg = la.deg;
if (deg == q.deg)
{
for (int k = deg; k > 0; k--)
{
if (trms[k] + q.trms[k] != 0)
{
break;
}
else
{
newdeg--;
}
}
}
Poly r = new Poly(newdeg);
int i;
for (i = 0; i <= sm.deg && i <= newdeg; i++)
{
r.trms[i] = sm.trms[i] + la.trms[i];
}
for (int j = i; j <= newdeg; j++)
{
r.trms[j] = la.trms[j];
}
return r;
}发布于 2011-10-14 00:57:03
它必须是:
public Poly Add(Poly q)
{
Contract.Requires(q != null, "You need to provide a valid non-null Poly.");
CheckRep();来自MSDN
您还必须激活运行时检查。右键单击您的项目->属性。单击左侧菜单中的"Code Contracts“。选中"Perfrom Runtime Contact Checking“
https://stackoverflow.com/questions/7757608
复制相似问题