32 Coding Guide

vencott·2021년 6월 2일
0

C#

목록 보기
32/32

Brace

Brace는 항상 라인의 처음에 위치한다

// O
if (condition)
{
    Run();
}

// X
if (condition){
    Run();
}

블록 안에 단 하나의 문장만 있더라도 반드시 Brace를 붙인다

// O
if (condition)
{
    Run();
}

// X
if (condition)
    Run();

단, get/set 속성을 짧게 정의하는 경우 { }를 한 라인으로 처리한다

public string Name
{
     get { return this.name; }
     set { this.name = value; }
}

Name Casing

클래스나 변수, 메서드명을 지정하는 방법은 여러가지가 있다

// Camel Case
startIndex

// Pascal Case
StartIndex

// Snake Case
start_index

Pascal Case

클래스, 메서드, 속성, 이벤트 명

public void Order  // 클래스명
{   
    public int OrderId { get; set; }  // 속성
    public void PlaceOrder(int id)    // 메서드
    {
    }
    public event EventHandler Completed; // 이벤트명
}

Public 상수와 Public 읽기전용 정적 변수

public void Order 
{   
    public const int MaxOrders = 30;
    public static readonly Tag; 
}

Enum Value 및 Enum element

public enum OrderStatus
{
    Open,
    InDelivery,
    CancelByCustomer
}

Camel Case

상수가 아닌 필드명

class MyClass
{
    int startIndex;
    string lastName;           
}

메서드 파라미터

CallMethod(startIndex, endIndex);

로컬 변수명

public void Run() 
{ 
    int startIndex;
}

Naming

클래스 멤버들을 명시적으로 표시하기 위해 필드, 메서드, 속성, 이벤트 등의 멤버 앞에 this.을 붙인다

// O
this.name

// X
name

인터페이스명은 항상 I로 시작한다

public interface IAlterable { }

Region

Region을 적극적으로 활용한다

using System;
using System.Data.SqlClient;

namespace MyNamespace
{
    public class MyClass : IFoo
    {
        #region Fields
        private int id;
        private int key;
        public event EventHandler FooChanged;
        #endregion

        #region Constructors
        public MyClass()
        {
        }
        #endregion
        
        #region Properties
        public int Bar { get; set; }
        public int Foo { get; set; }
        #endregion

        #region Public Methods
        public void DoSomething()
        { 
           //...
        }
        public void FindSomething()
        {
            //...
        }
        #endregion
        
        #region Interface Methods
        void IFoo.DoSomething() { DoSomething(); }
        #endregion

        #region Private Methods
        private void CheckSomething() {}
        private void GetSomething() {}
        private void SortSomething() {}

        #endregion
        
        #region Nested Types
        private class NestedType
        {
        }
        #endregion
    }
}

출처: http://www.csharpstudy.com/

profile
Backend Developer

0개의 댓글