다음을 통해 공유


형식 멤버의 이름

참고 항목

이 콘텐츠는 Pearson Education, Inc.의 허가를 받아 프레임워크 디자인 지침: 재사용 가능한 .NET 라이브러리에 대한 규칙, 관용어 및 패턴, 2판에서 재인쇄되었습니다. 이 버전은 2008년에 출판되었으며 이후 3판에서 완전히 개정되었습니다. 이 페이지의 정보 중 일부는 최신 정보가 아닐 수 있습니다.

형식은 메서드, 속성, 이벤트, 생성자 및 필드 등의 멤버로 이루어집니다. 다음 섹션에서는 형식 멤버 이름 지정에 대한 지침을 설명합니다.

메서드 이름

메서드가 작업을 수행하는 수단이기 때문에 디자인 지침에서는 메서드 이름이 동사 또는 동사구여야 합니다. 또한 이 지침을 따르면 명사 또는 형용사구인 속성 및 형식 이름과 메서드 이름을 구분할 수 있습니다.

✔️ 동사 또는 동사구인 메서드 이름을 지정합니다.

public class String {
    public int CompareTo(...);
    public string[] Split(...);
    public string Trim();
}

속성 이름

다른 멤버와 달리 속성은 명사구 또는 형용사 이름이 지정되어야 합니다. 속성이 데이터를 나타내기 때문에 속성 이름은 이를 반영해야 합니다. PascalCasing은 속성 이름에 항상 사용됩니다.

✔️ 명사, 명사구 또는 형용사를 사용하여 속성 이름을 지정합니다.

❌ 다음 예제와 같이 "Get" 메서드의 이름과 일치하는 속성이 없도록 합니다.

public string TextWriter { get {...} set {...} } public string GetTextWriter(int value) { ... }

이 패턴은 일반적으로 속성이 실제로 메서드임을 나타냅니다.

✔️ "List" 또는 "Collection" 뒤에 단수 문구를 사용하는 대신 컬렉션의 항목을 설명하는 복수 문구를 사용하여 컬렉션 속성의 이름을 지정합니다.

✔️ 긍정 구문(CantSeek 대신 CanSeek)(으)로 부울 속성의 이름을 지정합니다. 필요에 따라 부울 속성 앞에 "Is", "Can" 또는 "Has"를 접두사로 추가할 수도 있지만 값을 추가하는 경우에만 가능합니다.

✔️ 속성에 해당 형식과 동일한 이름을 지정하는 것이 좋습니다.

예를 들어, 다음 속성은 현재 올바르게 Color라는 열거형 값을 설정하므로 속성 이름은 Color입니다.

public enum Color {...}
public class Control {
    public Color Color { get {...} set {...} }
}

이벤트 이름

이벤트는 발생 중인 작업 또는 발생한 작업 중 하나를 가리킵니다. 따라서 메서드와 마찬가지로 이벤트는 동사를 사용하여 명명하고 동사 시제는 이벤트가 발생할 시간을 나타내는 데 사용됩니다.

✔️ 동사 또는 동사구를 사용하여 이벤트 이름을 지정합니다.

예를 들면 Clicked, Painting, DroppedDown 등입니다.

✔️ 현재 및 과거 시제를 사용하여 이전과 이후의 개념으로 이벤트 이름을 지정합니다.

예를 들어 창이 닫히기 전에 발생하는 닫기 이벤트는 Closing이라고 하고 창이 닫힌 후에 발생하는 닫기 이벤트는 Closed라고 합니다.

❌ 사전 및 사후 이벤트를 표시하기 위해 "Before" 또는 "After" 접두사 또는 접미사를 사용하지 마세요. 위에서 설명한 대로 현재 및 과거 시제를 사용합니다.

✔️ 다음 예제와 같이 "EventHandler" 접미사를 사용하여 이벤트 처리기(이벤트 형식으로 사용되는 대리자) 이름을 지정합니다.

public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);

✔️ 이벤트 처리기에서 sendere(이)라는 두 개의 매개 변수를 사용합니다.

보낸 사람 매개 변수는 이벤트를 발생시킨 개체를 나타냅니다. 보낸 사람 매개 변수는 보다 구체적인 형식을 적용할 수 있더라도 일반적으로 object 형식입니다.

✔️ "EventArgs" 접미사를 사용하여 이벤트 인수 클래스의 이름을 지정입니다.

필드 이름

필드 명명 지침은 공용 및 보호된 고정 필드에 적용됩니다. 내부 및 개인 필드는 지침에서 다루지 않고 공용 또는 보호된 인스턴스 필드는 멤버 디자인 지침에서 허용하지 않습니다.

✔️ 필드 이름에 PascalCasing을 사용합니다.

✔️ 명사, 명사구 또는 형용사를 사용하여 필드 이름을 지정합니다.

❌ 필드 이름에 접두사를 사용하지 마세요.

예를 들어 "g_" 또는 "s_"를 사용하여 고정 필드를 나타내지 마십시오.

Portions © 2005, 2009 Microsoft Corporation. All rights reserved.

Pearson Education, Inc의 동의로 재인쇄. 출처: Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition 작성자: Krzysztof Cwalina 및 Brad Abrams, 출판 정보: Oct 22, 2008 by Addison-Wesley Professional as part of the Microsoft Windows Development Series.

참고 항목