March 18, 2009
April 14, 2008
처리 시간 확인
NET Framework 2.0의 System.Diagnostics네임스페이스에 속해 있는 Stopwatch클래스를 사용한 처리 시간 확인
이 인스턴스를 선언하고 Start메소드와 Stop메소드를 호출하기만 하면 됩니다. 그 실행된 시간은 ElapsedMilliseconds속성(밀리초), Elapsed속성, ElapsedTicks속성으로부터 얻을 수 있습니다.
using System;
using System.Diagnostics;
class StopWatch {
static void Main() {
Stopwatch sw = new Stopwatch();
sw.Start();
System.Threading.Thread.Sleep(2000); // 2초
sw.Stop();
long millisec = sw.ElapsedMilliseconds;
Console.WriteLine(millisec); // 결과: 1999
TimeSpan ts = sw.Elapsed;
Console.WriteLine(ts); // 결과: 00:00:01.9995977
Console.WriteLine(Stopwatch.IsHighResolution); // 고성능 타이머 이용가능한지 체크
long tick = sw.ElapsedTicks;
Console.WriteLine(tick); //결과: 7157650
}
}
October 10, 2007
C#의 조건연산자(?:)와 Null-Coalescing 연산자(??)
변수를 할당하는 방법중에 일반적으로 조건연산자를 사용합니다. 하지만 변수가 Null이 아닌경우에만 사용이 가능합니다. 만약 C#에서 Null인 경우에는 다음과 같이 조건연산자를 사용합니다
string strValue = oldValue != null ? oldValue : "변수 값";
oldValue 가 Null 이 아닌 경우에는, strValue 에 oldValue 가 할당되고, 이외에는 strValue에 “변수 값”이 할당됩니다.
이것은 Null-Coalescing 연산자를 사용하여 다음과 같이 구현합니다
string strValue = oldValue ?? "변수 값";
이 로직은 동일합니다. oldValue가 Null 이 아니면, strValue 변수에 oldValue가 할당됩니다.
또한 Null-Coalescing 연산자는 여러가지 Null 유형에 대한 지원이 제공됩니다.
int? count = null;
int strValue = count ?? default (int);
count가 null이면, strValue에는 Integer 유형의 기본값이 할당됩니다(int 기본값인 0으로)