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";

浙公网安备 33010602011771号