[C#] 변수 명명법


Naming

프로그래머는 공동작업을 통해 프로젝트를 생산하기 때문에 기본적으로 지켜야 할 Rule들이 몇 가지 있다. 그 중 가장 기초적인 Naming Rule에 대해 정리해 보았다.

  • 변수명 표준화

    1. Camel Case를 사용한다. (두번째 단어부터 첫 글자 대문자)
    2. 이름은 명사형으로 짓는다.
    3. 접두어 + 몸체 + 접미어 형태로 짓는다.
    4. 단어의 개수는 4개를 넘지 않는다. (글자 수 최대 20 제한)

참고 : 유니티 - 깔끔하고 보기 좋은 변수명 짓기

  • 클래스, 구조체, 열거형, 인터페이스

    1. PascalCasing 을 사용한다. (첫문자 대문자)
    2. 명사 또는 명사구 형으로 짓는다
# 클래스
public class Class { ... }
# 구조체
public struct Nullable<T> where T:struct { ... }
# 열거형
public enum States   
    {
        CREATE,     // 내부 상태는 모두 대문자로 표시 (Optional)
        IDLE,
        ATTACK,
        TRACE,
    }
# 인터페이스
public interface ISessionChannel<TSession> where TSession: ISession // 제너릭 T는 대문자
{
    TSession Session {get;}
}
  • 타입 멤버명 표준화
    • 메서드
      메서드 이름은 동사 또는 동사구로 지정. 첫 문자 대문자로 기입
# 메서드
public class String{
    public int CompareTo(...);      // 동사구
    public string[] Split(...);
    public string Trim();
}
  • 프로퍼티
    명사구 혹은 형용사 이름으로 지정.
    # 프로퍼티
    public enum Color { ... }
    public class Control{
      public Color Color { get { ... } set { ... } } // 유형과 동일한 이름의 프로퍼티도 Not bad!
    } 
    
  • 이벤트 함수
    동사 혹은 동사구 형태로 짓기
    # 대리자
    public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);
    
  • 필드
    1. static, public, and protected field 에 한하여 PascalCasing 적용 (그러나 유니티 규칙은 camelCase 사용)
    2. Internal, private field의 경우 별다른 가이드라인은 없다. -> camelCase
    3. public, protected instance field 또한 별다른 가이드라인은 없다. -> camelCase
public class ExampleEvents
{
    #region field
    public bool IsValid;    // A public field, these should be used sparingly
    public bool isStarted;  // 유니티에서는 public field varibale도 camelCase 사용   
    public IWorkerQueue WorkerQueue { get; init; }    // An init-only property
    public event Action EventProcessing;    // An event
    
    // Method
    public void StartEventProcessing()
    {
        // Local function
        static int CountQueueItems() => WorkerQueue.Count; // (입력 파라미터) => { 실행 문장 블럭; }
    }
    #endregion
}

public class DataService
{
    private static IWorkerQueue s_workerQueue;  // private static 필드 사용시 s_ 접두어를 붙이기
}

  • 매개변수 표준화

    • 매개변수
      camelCasing 사용. 매개변수의 의미를 기반으로 이름을 사용하는 것을 고려하기
      #매개변수
      public T SomeMethod<T>(int someNumber, bool isValid) { }
      

참고 : .NET 형식멤버 이름 정리


© 2023 Jinsoo Lee. All rights reserved.

Powered by Hydejack v9.1.6