2013-06-23 2 views
1

코드 계약을 계속 학습합니다. 작은 테스트를 만들면 검사기에서 다음 메시지가 나타납니다. CodeContracts :이 메서드를 호출하면 항상 오류가 발생합니다. 원할 경우 Contract.Requires (false)를 추가하여 문서화하십시오.CodeContracts :이 메서드를 호출하면 항상 오류가 발생합니다.

나는 무엇을 말하려고하는지 이해하지 못합니다. 이 예제에 Contract.Requires (false)를 어떻게 추가하면 경고가 표시되지 않습니까?

이것은 코드입니다. 이것은 CC를 학습 할 목적으로 만 고안된 예제입니다. 당신

  1. 말 그대로 null 일 수 없다는 것을

CC는 기본적으로 당신을 말하고 널 (null)로 전화를 결코 할 메서드에 매개 변수를 필요로

void DoSomething(object test) { 
     Contract.Requires(test != null); 
     MessageBox.Show(test.ToString()); 
    } 


    void InvokeDoSomething() { 
     DoSomething(null); 

    } 

답변

0

코드 계약은 발견하여 코드는 항상 실패합니다. 계약은 괜찮은 것 같지만 전화가 안좋아. 해결책은 물론 Contract.Requires (false)를 추가하는 것이 아니라 null로 메소드를 호출하지 않는 것입니다.