다음을 통해 공유


클래스, 구조체 및 인터페이스의 이름

비고

이 콘텐츠는 프레임워크 디자인 지침: 재사용 가능한 .NET 라이브러리에 대한 규칙, 관용구 및 패턴, 2판에서 Pearson Education, Inc.의 권한으로 다시 인쇄됩니다. 이 버전은 2008년에 출판되었으며, 이후 세 번째 에디션에서 완전히 수정되었습니다. 이 페이지의 일부 정보는 오래된 것일 수 있습니다.

다음 명명 지침은 일반 형식 명명에 적용됩니다.

✔️ PascalCasing을 사용하여 명사 또는 명사 구를 사용하여 클래스 및 구조체의 이름을 지정합니다.

이는 형식 이름을 동사 구로 명명된 메서드와 구분합니다.

✔️ 인터페이스를 형용사구 또는 때때로 명사나 명사구로 이름 지정하십시오.

명사 및 명사 구는 거의 사용되지 않아야 하며 형식이 인터페이스가 아닌 추상 클래스여야 함을 나타낼 수 있습니다.

❌ 클래스 이름에 접두사(예: "C")를 지정하지 마세요.

✔️ 파생 클래스의 이름을 기본 클래스의 이름으로 종료하는 것이 좋습니다.

이것은 매우 읽을 수 있으며 관계를 명확하게 설명합니다. 코드에서의 몇 가지 예는 ArgumentOutOfRangeExceptionException의 일종이며, SerializableAttributeAttribute의 일종입니다. 그러나 이 지침을 적용할 때 합리적인 판단을 사용하는 것이 중요합니다. 예를 들어 클래스는 이름에 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일 출판했습니다.

참고하십시오