我正在做一個簡單的代碼合同測試。下面的代碼是在一個winform中。這傳遞(當然):C#代碼合同:爲什麼不能證明這個簡單的條件?
private void Test(Form form)
{
Contract.Requires(!string.IsNullOrEmpty(form.Name));
MessageBox.Show(form.Name);
}
protected override void OnLoad(EventArgs e)
{
if (!string.IsNullOrEmpty(Name))
Test(this);
base.OnLoad(e);
}
不過,我增加一個間接的只是一個很簡單的層面,它說:「需要得到證實」:
private bool Valid(string str)
{
return !string.IsNullOrEmpty(str);
}
protected override void OnLoad(EventArgs e)
{
if (Valid(Name))
Test(this);
base.OnLoad(e);
}
這似乎將是微不足道的證明。爲什麼它不工作?
嗯,好的。這看起來有點用處不大,但我會接受你的話。 – 2010-08-18 23:38:29