상세 컨텐츠

본문 제목

#if, #endif 보다는 Conditional Attribute를 이용하라!

C#

by 탑~! 2012. 8. 7. 09:58

본문


#if, #endif 보다는 Conditional Attribute를 이용하라!

 

기존방법

예제 : #if, #endif 방법

private void Check()

{

#if DEBUG

    string name = new StackTrace().GetFrame(1).GetMethod().Name;

 

    Trace.WriteLine("Check for Person : ");

    Trace.WriteLine("called by " + name);

#endif

}

 

좋지 않은 점 :

1. Release모드일 때에는 메소드 내용이 포함되지는 않지만 쓸데없는 메소드 호출을 피할 수 없다.

2. 코더의 실수를 유발하여 의도하지 않은 코드가 삽입될 수 있다.

 

개선시킨 방법

예제 : Conditional Attribute 사용 방법

[Conditional("DEBUG")]

private void Check()

{

    string name = new StackTrace().GetFrame(1).GetMethod().Name;

 

    Trace.WriteLine("Check for Person : ");

    Trace.WriteLine("called by " + name);

}

 

좋은 점 :

1. Release모드일 때에는 메소드 내용이 컴파일 되지만 호출되지는 않는다.

2. 메소드 전체에 대한 제어가 가능하다.

 

한계점 :

1. void 메소드에만 가능하다.

2. 메소드 내의 일부 문장에 대해서만 제약할 수 없다. (메소드 전체에만 지정 가능)

è 분리하여 관리하자



출처 : http://inasie.tistory.com/category/C%23

'C#' 카테고리의 다른 글

컴퓨터의 Beep음을 내는 방법  (0) 2012.08.07
강제 형 변환(cast)보다는 as, is 연산자를 사용하는 것이 좋다  (0) 2012.08.07
Elevated 권한상승  (0) 2012.08.07
신뢰사이트 자동 등록  (0) 2012.08.07
WAV 파일 재생  (0) 2012.04.19

관련글 더보기