비고
이 콘텐츠는 프레임워크 디자인 지침: 재사용 가능한 .NET 라이브러리에 대한 규칙, 관용구 및 패턴, 2판에서 Pearson Education, Inc.의 권한으로 다시 인쇄됩니다. 이 버전은 2008년에 출판되었으며, 이후 세 번째 에디션에서 완전히 수정되었습니다. 이 페이지의 일부 정보는 오래된 것일 수 있습니다.
다음 명명 지침은 일반 형식 명명에 적용됩니다.
✔️ PascalCasing을 사용하여 명사 또는 명사 구를 사용하여 클래스 및 구조체의 이름을 지정합니다.
이는 형식 이름을 동사 구로 명명된 메서드와 구분합니다.
✔️ 인터페이스를 형용사구 또는 때때로 명사나 명사구로 이름 지정하십시오.
명사 및 명사 구는 거의 사용되지 않아야 하며 형식이 인터페이스가 아닌 추상 클래스여야 함을 나타낼 수 있습니다.
❌ 클래스 이름에 접두사(예: "C")를 지정하지 마세요.
✔️ 파생 클래스의 이름을 기본 클래스의 이름으로 종료하는 것이 좋습니다.
이것은 매우 읽을 수 있으며 관계를 명확하게 설명합니다. 코드에서의 몇 가지 예는 ArgumentOutOfRangeException
는 Exception
의 일종이며, SerializableAttribute
는 Attribute
의 일종입니다. 그러나 이 지침을 적용할 때 합리적인 판단을 사용하는 것이 중요합니다. 예를 들어 클래스는 이름에 Button
표시되지 않지만 Control
일종의 Control
이벤트입니다.
✔️ 형식이 인터페이스임을 나타내기 위해 문자 I로 인터페이스 이름을 시작하십시오.
예를 들어 IComponent
(설명 명사), ICustomAttributeProvider
명사 구 및 IPersistable
(형용사)는 적절한 인터페이스 이름입니다. 다른 형식 이름과 마찬가지로 약어를 사용하지 않습니다.
클래스가 인터페이스의 표준 구현일 때, 클래스-인터페이스 쌍을 정의하는 경우, 인터페이스 이름의 "I" 접두사만 다르게 해야 합니다.
제네릭 형식 매개 변수의 이름
제네릭이 .NET Framework 2.0에 추가되었습니다. 이 기능은 형식 매개 변수라는 새로운 종류의 식별자를 도입했습니다.
✔️ 제네릭 형식 매개 변수에는 설명이 포함된 이름을 붙이세요. 단, 단일 문자 이름이 자체적으로 충분히 설명적이고 설명이 포함된 이름이 가치가 없을 경우에는 단일 문자 이름을 사용할 수 있습니다.
✔️ 단일 문자 형식 매개 변수가 하나 있는 형식의 형식 매개 변수 이름으로 사용하는 T
것이 좋습니다.
public int IComparer<T> { ... }
public delegate bool Predicate<T>(T item);
public struct Nullable<T> where T:struct { ... }
✔️ 설명적인 형식 매개변수 이름에 접두사 T
를 추가하라.
public interface ISessionChannel<TSession> where TSession : ISession {
TSession Session { get; }
}
✔️ 매개 변수 이름에서 형식 매개 변수에 배치된 제약 조건을 나타내는 것이 좋습니다.
예를 들어, ISession
으로 제한된 매개 변수를 TSession
이라고 부를 수 있습니다.
공통 종류의 이름
✔️ 특정 .NET Framework 형식에서 파생된 형식의 이름을 지정하거나 구현할 때 다음 표에 설명된 지침을 따르세요.
기본 형식 | 파생/구현 형식 지침 |
---|---|
System.Attribute |
✔️ 사용자 지정 특성 클래스의 이름에 접미사 "특성"을 추가합니다. |
System.Delegate |
✔️ 이벤트에 사용되는 대리자의 이름에 접미사 "EventHandler"를 추가합니다. ✔️ 이벤트 처리기로 사용되지 않는 대리자의 이름에 접미사 "Callback"을 추가합니다. ❌ 접미사 "Delegate"를 대리자에 추가하지 마세요. |
System.EventArgs |
✔️ 접미사 "EventArgs"를 추가합니다. |
System.Enum |
❌ 이 클래스에서 파생되지 마세요. 언어에서 지원하는 키워드를 대신 사용합니다. 예를 들어 C#에서 키워드를 enum 사용합니다.❌ 접미사 "Enum" 또는 "Flag"를 추가하지 마세요. |
System.Exception |
✔️ 접미사 "예외"를 추가합니다. |
IDictionary IDictionary<TKey,TValue> |
✔️ 접미사 "사전"을 추가합니다. IDictionary 특정 유형의 컬렉션이지만 이 지침은 다음에 나오는 보다 일반적인 컬렉션 지침보다 우선합니다. |
IEnumerable ICollection IList IEnumerable<T> ICollection<T> IList<T> |
✔️ 접미사 "컬렉션"을 추가합니다. |
System.IO.Stream |
✔️ 접미사 "Stream"을 추가합니다. |
CodeAccessPermission IPermission |
✔️ 접미사 "권한"을 추가합니다. |
열거형 이름 짓기
일반적으로 열거형 형식의 이름(열거형이라고도 함)은 표준 형식 명명 규칙(PascalCasing 등)을 따라야 합니다. 그러나 열거형에 특별히 적용되는 추가 지침이 있습니다.
✔️ 값이 비트 필드가 아니면 열거형에 단수 형식 이름을 사용합니다.
✔️ DO는 플래그 열거형이라고도 하는 값으로 비트 필드가 있는 열거형에 복수 형식 이름을 사용합니다.
❌ 열거형 형식 이름에는 "Enum" 접미사를 사용하지 마세요.
❌ 열거형 타입 이름에는 "플래그" 또는 "Flags" 접미사를 사용하지 마세요.
❌ 열거형 값 이름에 접두사를 사용하지 마세요(예: ADO 열거형의 경우 "광고", 서식 있는 텍스트 열거형의 경우 "rtf" 등).
Microsoft Corporation의 일부 저작권 2005, 2009. 모든 권리 보유.
프레임워크 디자인 지침에서 Pearson Education, Inc.의 권한으로 재인쇄 : 재사용 가능한 .NET 라이브러리에 대한 규칙, 관용구 및 패턴, Krzysztof Cwalina 및 Brad Abrams의 제2판, Microsoft Windows 개발 시리즈의 일환으로 Addison-Wesley Professional이 2008년 10월 22일 출판했습니다.