C# Language코드 계약


통사론

  1. Contract.Requires (조건, userMessage)

    Contract.Requires (조건, userMessage)

    Contract.Result <T>

    Contract.Ensures ()

    Contract.Invariants ()

비고

.NET은 System.Diagnostics 네임 스페이스에있는 Contracts 클래스를 통해 Contract by Design 아이디어를 지원하며 .NET 4.0에서 도입되었습니다. 코드 계약 API에는 코드의 정적 및 런타임 검사를위한 클래스가 포함되어 있으며 메소드 내에서 전제 조건, 사후 조건 및 불변 조건을 정의 할 수 있습니다. 전제 조건은 메소드가 실행되기 전에 매개 변수가 충족해야하는 조건, 메소드 완료시 검증 된 사후 조건 및 메소드의 실행 중에 변경되지 않는 조건을 정의하는 불변 조건을 지정합니다.

코드 계약이 필요한 이유는 무엇입니까?

응용 프로그램이 실행 중일 때 응용 프로그램의 추적 문제는 모든 개발자와 관리자의 주된 관심사 중 하나입니다. 추적은 다양한 방법으로 수행 될 수 있습니다. 예를 들어 -

  • 응용 프로그램에서 추적을 적용하고 응용 프로그램이 실행 중일 때 응용 프로그램의 세부 정보를 얻을 수 있습니다

  • 응용 프로그램을 실행할 때 이벤트 로깅 메커니즘을 사용할 수 있습니다. 이벤트 뷰어를 사용하여 메시지를 볼 수 있습니다.

  • 특정 시간 간격 후에 성능 모니터링을 적용하고 응용 프로그램에서 실제 데이터를 쓸 수 있습니다.

코드 계약은 응용 프로그램 내에서 문제를 추적하고 관리하기 위해 다른 접근 방식을 사용합니다. 선행 조건, 사후 조건 및 메서드에 대한 불변 식의 도움으로 코드 호출에서 반환 된 모든 내용을 확인하는 대신 메서드에 들어오고 나가는 모든 내용이 올바른지 확인하십시오.

코드 계약 관련 예