다음을 통해 공유


Contract 클래스

정의

사전 조건, 사후 조건, 개체 고정 조건 같은 프로그램 계약을 나타내는 정적 메서드가 포함됩니다.

public ref class Contract abstract sealed
public static class Contract
type Contract = class
Public Class Contract
상속
Contract

설명

코드 계약 클래스를 사용하면 코드에서 사전 조건, 사후 조건 및 개체 고정을 지정할 수 있습니다. 사전 조건은 메서드 또는 속성을 입력할 때 충족해야 하는 요구 사항입니다. 사후 조건은 메서드 또는 속성 코드가 종료될 때의 기대치를 설명합니다. 개체 고정은 조건 문제가 없는 클래스의 예상 상태를 설명합니다. 사전 조건, 사후 조건 및 개체 고정에 대한 자세한 내용은 코드 계약을 참조하세요.

코드 계약 사용에 대한 도구 및 자세한 지침은 Visual Studio Marketplace의 코드 계약을 참조하세요.

중요

이진 재작성기를 사용하여 계약의 런타임 적용을 삽입해야 합니다. 그렇지 않으면 메서드와 같은 Contract.Ensures 계약은 정적으로만 테스트할 수 있으며 계약을 위반하는 경우 런타임 동안 예외를 throw하지 않습니다. Visual Studio Marketplace의 코드 계약 에서 이진 재작성기 CCRewrite를 다운로드할 수 있습니다. CCRewrite에는 프로젝트 속성 페이지에서 런타임 계약 적용을 활성화할 수 있는 Visual Studio 추가 기능이 함께 제공됩니다. 이진 재작성기 및 Visual Studio 추가 기능은 Visual Studio 2010 또는 Windows SDK 함께 제공되지 않습니다.

메서드

Assert(Boolean)

조건을 확인합니다. 조건이 false이면 분석기에 설정된 에스컬레이션 정책을 따릅니다.

Assert(Boolean, String)

조건을 확인합니다. 조건이 false이면 분석기에 설정된 에스컬레이션 정책을 따르고 지정된 메시지를 표시합니다.

Assume(Boolean)

조건이 항상 true인지 고정적으로 입증할 수 없는 경우를 포함하여, 코드 분석 도구가 지정된 조건을 true라고 가정하도록 지시합니다.

Assume(Boolean, String)

조건이 항상 true인지 고정적으로 입증할 수 없는 경우를 포함하여, 코드 분석 도구가 조건을 true라고 가정하고 가정이 실패한 경우 메시지를 표시하도록 지시합니다.

EndContractBlock()

메서드의 계약에 if-then-throw 형태의 사전 조건만 포함되어 있을 때 계약 섹션의 끝을 표시합니다.

Ensures(Boolean)

바깥쪽 메서드 또는 속성에 대한 사후 조건 계약을 지정합니다.

Ensures(Boolean, String)

제공된 종료 조건에 대한 사후 조건 계약과 조건이 false인 경우 표시할 메시지를 지정합니다.

EnsuresOnThrow<TException>(Boolean)

제공된 예외와 조건에 따라 바깥쪽 메서드 또는 속성에 대한 사후 조건 계약을 지정합니다.

EnsuresOnThrow<TException>(Boolean, String)

제공된 예외와 조건에 따라 바깥쪽 메서드 또는 속성에 대한 해당 조건이 false인 경우 표시할 사후 조건 계약과 메시지를 지정합니다.

Exists(Int32, Int32, Predicate<Int32>)

정수 범위 내의 정수에 대해 지정된 테스트가 true인지 여부를 확인합니다.

Exists<T>(IEnumerable<T>, Predicate<T>)

요소 컬렉션에 속하는 요소가 함수에 존재하는지 확인합니다.

ForAll(Int32, Int32, Predicate<Int32>)

지정된 범위의 모든 정수에 대해 특정 조건이 유효한지 여부를 확인합니다.

ForAll<T>(IEnumerable<T>, Predicate<T>)

컬렉션의 모든 요소가 함수에 존재하는지 확인합니다.

Invariant(Boolean)

바깥쪽 메서드 또는 속성에 대한 고정 계약을 지정합니다.

Invariant(Boolean, String)

바깥쪽 메서드나 속성에 대한 invariant 계약을 지정하고 계약의 조건이 실패한 경우 메시지를 표시합니다.

OldValue<T>(T)

값을 메서드나 속성의 시작 위치에 있었던 그대로 나타냅니다.

Requires(Boolean)

바깥쪽 메서드 또는 속성에 대한 사전 조건 계약을 지정합니다.

Requires(Boolean, String)

바깥쪽 메서드나 속성에 대한 사전 조건 계약을 지정하고 계약의 조건이 실패한 경우 메시지를 표시합니다.

Requires<TException>(Boolean)

바깥쪽 메서드나 속성에 대한 사전 조건 계약을 지정하고 계약의 조건이 실패한 경우 예외를 throw합니다.

Requires<TException>(Boolean, String)

바깥쪽 메서드 또는 속성에 대한 사전 조건 계약을 지정하고 계약의 조건이 실패할 경우 제공된 메시지와 함께 예외를 throw합니다.

Result<T>()

메서드나 속성의 반환 값을 나타냅니다.

ValueAtReturn<T>(T)

메서드에서 반환되는 out 매개 변수의 최종(출력) 값을 나타냅니다.

이벤트

ContractFailed

계약이 실패한 경우 발생합니다.

적용 대상