다음은 C# 코딩과 관련하여 자주 문의되는 몇 가지 코딩 스타일들을 정리한 것이다.
C# 코딩: C# 데이타 타입
C#에서 데이타 타입은 built-in 타입(예: int) 혹은 CLR 타입(예: Int32)을 사용할 수 있다.
C# 코드에서는 이 중 C#에 built-in 되어 있는 데이타 타입을 사용할 것을 권장한다.
C# 코딩: 접근제한자(Access Modifier)
C# 클래스의 멤버(필드, 속성, 메서드 등)들에 대해 항상 접근제한자(Access Modifier)를 명시한다.
일반적으로 접근제한자를 각 멤버 정의의 첫부분에 일괄적으로 표시하는 것이 좋다.
클래스 멤버중 필드는 private으로 지정한다 (OOP). 필드를 public, internal, protected로 해야 할 경우는 속성을 사용한다.
예제
//나쁜표현
string GetName() {...} // 접근제한자 없음
static public int GetId() {...} // public을 처음에 표시할 것
//좋은표현
public static int GetId() { ... }
C# 코딩: if 조건
if 조건문에서 bool 변수가 있다면, 이를 다시 true/false와 비교하지 않는다.
if 조건문 안에서 할당(assignment)을 하지 않는다. 이는 코드 가독성을 떨어뜨린다.
예제
if (isValid == true) //나쁜표현
if (isValid) //좋은표현
// 나쁜표현
if ((a = b) == 10)
//좋은표현
a = b;
if (a == 10)
C# 코딩: Attribute 지정
Attribute는 별도의 라인에 지정한다. 만약 복수개의 Attribute가 있는 경우는 한 라인에 하나씩 지정한다.
예제
//나쁜표현
[Authorize] public void Run()
{
}
//좋은표현
[Authorize]
public void Run()
{
}
//나쁜표현
[Authenticate, Authorize, Testable]
public void Run()
{
}
//좋은표현
[Authenticate]
[Authorize]
[Testable]
public void Run()
{
}
C# 코딩: Escape String
문자열 안에 백슬래쉬 같은 Escaped String이 있는 경우, C#의 @ 을 사용한다.
예제
//나쁜표현
string path = "C:\\Temp\\test.txt";
//좋은표현
string path = @"C:\Temp\test.txt";
C# 코딩: 문자열 병합
문자열 병합(concatenation)을 위해서는 + 연산자를 사용하지 말고, StringBuilder나 String.Format()을 사용한다.
예제
//나쁜표현
var res = s1 + "+" + s2 + "=" + s3;
//좋은표현
var res = string.Format("{0}+{1}={2}", s1, s2, s3)
C# 코딩: Exception
Exception을 rethrow 하기 위해서는 원래의 exception 스택을 보존하기 위해 throw; 를 사용한다.
예제
//나쁜표현
catch (Exception ex)
{
Log(ex);
throw ex;
}
//좋은표현
catch (Exception ex)
{
Log(ex);
throw;
}
C# 코딩: using
IDisposable을 사용하는 클래스 객체는 C#의 using 블럭을 사용하여 자동으로 Dispose() 메서드가 호출되게 한다.
using 은 블럭 내에서 Exception이 발생하더라도 항상 Dispose()를 호출하게 된다.
예제
//나쁜표현
var cn = new SqlConnection();
//...
cn.Close();
//좋은표현
using (var cn = new SqlConnection())
{
//...
}
본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.