머리말

기본 원칙

  1. 가독성을 최우선으로 삼는다. (대부분의 경우 코드는 그 자체가 문서의 역할을 해야 함)
  2. 정말 합당한 이유가 있지 않는 한, 통합개발환경(IDE)의 자동 서식을 따른다. (비주얼 스튜디오의 "Ctrl + K + D" 기능)
  3. 본 코딩표준을 따라 잘 짜여진 기존의 코드에서 배운다.

I. 메인 코딩 표준

  1. 클래스와 구조체의 이름은 파스칼 표기법을 따른다.

    class PlayerManager;
    struct PlayerData;
    
    
  2. 지역 변수 그리고 함수의 매개 변수의 이름은 카멜 표기법을 따른다.

    public void SomeMethod(int someParameter)
    {
        int someNumber;
        int id;
    }
    
    
  3. 메서드 이름은 기본적으로 동사(명령형)+명사(목적어)의 형태로 짓는다.

    public uint GetAge()
    {
    // 함수 구현부...}
    
    
  4. 단, 단순히 부울(boolean) 상태를 반환하는 메서드의 동사 부분은 최대한 IsCanHasShould를 사용하되 그러는 것이 부자연스러울 경우에는 상태를 나타내는 다른 3인칭 단수형 동사를 사용한다.

    public bool IsAlive(Person person);
    public bool HasChild(Person person);
    public bool CanAccept(Person person);
    public bool ShouldDelete(Person person);
    public bool Exists(Person person);
    
    
  5. 아래에 제시된 예를 제외하곤 모든 메서드의 이름은 파스칼 표기법을 따른다.

    public uint GetAge()
    {
    // 함수 구현부...}
    
    
  6. public 메서드가 아닌 경우 카멜 표기법을 따른다. Visual Studio를 사용 시에는 별도의 스타일 규칙을 추가해야 할 수도 있음. (자세한 설명)

    private uint getAge()
    {
    // 함수 구현부...}
    
    
  7. 상수의 이름은 모두 대문자로 하되 밑줄로 각 단어를 분리한다.

    const int SOME_CONSTANT = 1;
    
    
  8. 상수로 사용하는 개체형 변수에는 static readonly를 사용한다.

    public static readonly MyConstClass MY_CONST_OBJECT = new MyConstClass();
    
    
  9. 상수로 사용하는 static readonly 변수는 모두 대문자로 하되 밑줄로 각 단어를 분리한다.

  10. 초기화 후 값이 변하지 않는 변수는 readonly로 선언한다.

     public class Account
     {
         private readonly string mPassword;
    
         public Account(string password)
         {
             mPassword = password;
         }
     }
    
    
  11. 네임스페이스의 이름은 파스칼 표기법을 따른다.

     namespace System.Graphics
    
    
  12. 부울(boolean) 변수는 앞에 b를 붙인다.

     bool bFired;// 지역변수private bool mbFired;// private 멤버변수
    
  13. 부울 프로퍼티는 앞에 IsHasCanShould 중에 하나를 붙인다.

     public bool IsFired { get; private set; }
     public bool HasChild { get; private set; }
     public bool CanModal { get; private set; }
     public bool ShouldRedirect { get; private set; }
    
    
  14. 인터페이스를 선언할 때는 앞에 I를 붙인다.

     interface ISomeInterface;