[C#] 변수 명명법
Naming
프로그래머는 공동작업을 통해 프로젝트를 생산하기 때문에 기본적으로 지켜야 할 Rule들이 몇 가지 있다. 그 중 가장 기초적인 Naming Rule에 대해 정리해 보았다.
변수명 표준화
- Camel Case를 사용한다. (두번째 단어부터 첫 글자 대문자)
- 이름은 명사형으로 짓는다.
- 접두어 + 몸체 + 접미어 형태로 짓는다.
- 단어의 개수는 4개를 넘지 않는다. (글자 수 최대 20 제한)
클래스, 구조체, 열거형, 인터페이스
- PascalCasing 을 사용한다. (첫문자 대문자)
- 명사 또는 명사구 형으로 짓는다
# 클래스
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);
- 필드
- static, public, and protected field 에 한하여 PascalCasing 적용 (그러나 유니티 규칙은 camelCase 사용)
- Internal, private field의 경우 별다른 가이드라인은 없다. -> camelCase
- 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 형식멤버 이름 정리