속성 디자인

일반적으로 메서드는 동작을 나타내고 속성은 데이터를 나타냅니다. 속성은 필드처럼 사용됩니다. 즉, 계산 과정이 복잡하지 않거나 부작용을 생성하지 않아야 합니다. 속성 디자인에 대한 자세한 내용은 인덱싱된 속성 디자인속성 변경 내용 알림 이벤트를 참조하십시오.

다음 지침은 속성이 잘 디자인되었는지 확인하는 데 도움이 됩니다.

호출자가 속성 값을 변경할 수 없는 경우 읽기 전용 속성을 만듭니다.

속성 형식의 가변성은 최종 사용자가 변경할 수 있는 부분에 영향을 줍니다. 예를 들어, 읽기/쓰기 컬렉션을 반환하는 읽기 전용 속성을 정의하는 경우, 최종 사용자는 해당 속성에 다른 컬렉션을 할당할 수 없지만 해당 컬렉션의 요소를 수정할 수는 있습니다.

설정 전용 속성을 제공하지 않습니다.

getter 속성을 제공할 수 없는 경우 해당 기능을 구현하는 메서드를 대신 사용합니다. 메서드 이름은 Set으로 시작되고 사용하려던 속성 이름이 그 뒤에 나옵니다. 예를 들어, AppDomain에는 CachePath라는 설정 전용 속성 대신 SetCachePath라는 메서드가 있습니다.

모든 속성에 적절한 기본값을 제공하여 기본값으로 인해 보안상 위험해지거나 매우 비효율적으로 디자인되지 않도록 합니다.

잠시 잘못된 개체 상태가 되더라도 임의의 순서로 속성을 설정할 수 있도록 합니다.

setter 속성에서 예외를 throw하는 경우 이전 값을 유지합니다.

getter 속성에서 예외를 throw하지 않습니다.

getter 속성은 사전 조건이 없는 간단한 작업이어야 합니다. getter에서 예외를 throw하는 경우 해당 속성이 메서드가 되도록 다시 디자인할 수 있습니다. 이 권장 사항은 인덱서에 적용되지 않습니다. 인덱서는 잘못된 인수로 인해 예외를 throw할 수 있습니다.

setter 속성에서 예외를 throw하는 것은 유효하고 허용됩니다.

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.

참고 항목

기타 리소스

멤버 디자인 지침

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