글 작성자: 써니루루

'??' 연산자는 변수안의 값이 널이면 우측의 값을 널이 아니면 변수안의 값을 리턴하도록 하는 비교 연산자라 할 수 있다.

이는 .NET Framework 2.0 부터 있단 C# 2.0에 있던 내용인데
대부분의 사람들이 .NET Framework 3.0 이후 C# 3.0 이후의 내용으로 오해하는 경우가 많다.

VS 2005에서도 사용할 수 있는데... -_ -;

다들 착각하지 말고 2.0에서도 사용하시길~~

아래 내용은 참고 하는 소스를 해외 사이트에서 스크랩해온 내용..

참고하실 페이지의 주소는 다음과 같습니다.

PS. int? 와 같은 형식의 Nullable type도 .NET Framework 2.0에서 작동합니다. 아니라고 우기시는분들은 찾아보시길 -_ -;;

http://weblogs.asp.net/scottgu/archive/2007/09/20/the-new-c-null-coalescing-operator-and-using-it-with-linq.aspx
http://dotnettipoftheday.org/tips/double_question_mark_operator_cs.aspx
http://www.sturmnet.org/blog/archives/2005/06/15/doublequestionmark/
http://blog.devstone.com/Aaron/archive/2006/01/02/1404.aspx
http://mastersact.blogspot.com/2007/05/cs-operator.html




?? operator (C#)

The ?? operator returns the left-hand operand if it is not null, or else it returns the right operand. For example:

   

    int? x = null;

    ...

    // y = x, unless x is null, in which case y = -1.

    int y = x ?? -1;




The ?? operator also works with reference types:

  

  //message = param, unless param is null

    //in which case message = "No message"

    string message = param ?? "No message";