코드 계약에 대한 간단한 테스트를하고 있습니다. 다음 코드는 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);
}
이 보인다. 왜 작동하지 않는거야?
흠, 괜찮아. 그것은 다소 덜 유용하게 보이지만, 나는 그것에 대해 당신의 말을 할 것입니다. –