다음을 통해 공유


인수 유효성 확인

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

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

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

null 인수가 전달되었지만 멤버가 null(Visual Basic의 경우 Nothing) 인수를 지원하지 않는 경우 System.ArgumentNullException을 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.

디자인 지침에 자세한 내용은 참조를 "Framework 디자인 지침: 규칙, 숙어, 및 재사용에 대 한 패턴입니다.NET 라이브러리"도 서 Krzysztof Cwalina와 Brad Abrams, 게시 Addison-wesley, 2005.

참고 항목

개념

매개 변수 디자인

기타 리소스

멤버 디자인 지침

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