다음을 통해 공유


인수 유효성 확인

업데이트: 2007년 11월

다음 지침은 인수의 유효성을 올바로 검사하는 데 도움이 됩니다.

공용 멤버, 보호된 멤버 또는 명시적으로 구현된 멤버에 전달된 인수의 유효성을 검사합니다. 유효성 검사가 실패하면 System.ArgumentException 또는 파생 클래스 중 하나를 throw합니다.

이 지침에서는 공개된 멤버에 유효성 검사 코드가 필요하지 않습니다. 유효성 검사를 처리하는 내부 메서드에 인수를 전달할 수 있습니다.

열거형 매개 변수의 유효성을 검사합니다.

CLR(공용 언어 런타임)에서는 해당 값이 열거형에 정의되었는지 여부에 관계없이 임의의 정수 값이 열거형 값으로 캐스팅될 수 있으므로 열거형 인수를 열거형에 정의된 값으로 가정할 수 있습니다.

열거형 범위 검사는 버전에 따라 다른 열거형의 런타임 형식을 기반하므로 System.Enum.IsDefined(System.Type,System.Object)를 사용해서는 안 됩니다.

이후 버전의 라이브러리는 전달 열거형에 값을 추가할 수 있습니다. 데이터 유효성 검사를 위해 IsDefined를 사용하는 경우, IsDefined가 새 값에 대해 true를 반환하여 새 값을 처리하지 않은 기존 코드가 새 값을 올바른 입력으로 처리하므로 위험할 수 있습니다. 입력 범위가 프로그램이 지원할 수 있는 값의 범위인지 확인합니다. 해당 범위에 속하지 않으면 예외가 throw됩니다.

전달된 인수가 변경할 수 있는 인수인 경우 유효성을 검사한 후 변경되었을 수 있습니다.

보안상 중요한 멤버인 경우 변경할 수 있는 개체의 전용 복사본을 작성하고 이 복사본을 유효성 검사와 처리에 사용합니다. 이는 변경할 수 있는 데이터에만 적용됩니다. Uri 개체와 같이 변경할 수 없는 데이터는 복사하지 않아도 됩니다.

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

디자인 지침에 대한 자세한 내용은 2005년에 Addison-Wesley에서 책으로 출간한 Krzysztof Cwalina와 Brad Abrams의 "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries"를 참조하십시오.

참고 항목

개념

매개 변수 디자인

기타 리소스

멤버 디자인 지침

클래스 라이브러리 개발을 위한 디자인 지침