C# ??操作符


顺便提提这个??(null-coalescing operator)操作符,当操作符左边的表达式为空时,返回操作符右边的值;如果操作符左边表达式值不为空时,返回操作符左边表达式值。

??操作符给我们的编码带来了很多的便利,是我们的代码更为简练,可读性更强,看下面几个示例:

private static void NullCoalescingOperator() {  
Int32? b = null;

// The line below is equivalent to:
// x = (b.HasValue) ? b.Value : 123
Int32 x = b ?? 123;
Console.WriteLine(x); // "123"

// The line below is equivalent to:
// String temp = GetFilename();
// filename = (temp != null) ? temp : "Untitled";
String filename = GetFilename() ?? "Untitled";
}

还可以连写:

String s = SomeMethod1() ?? SomeMethod2() ?? "Untitled";

还可以用在Lamda表达式里面,增强可读性:

Func<String> f = () => SomeMethod() ?? "Untitled";

posted @ 2011-02-19 11:20  单单的忧伤  Views(93)  Comments(0)    收藏  举报