Twe*_*nty 5 c# null-coalescing c#-7.0
我想知道为什么在C#7.0中可以这样做:
int? test = 0;
int test2 = test ?? throw new Exception("Error");
Run Code Online (Sandbox Code Playgroud)
..但不是这个:
int? test = 0;
int test2 = test ?? return;
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
throw最近(在C#7.0中)已经变成了一个表达式来启用它.return没有 - 它总是一个公正的声明.该??运营商需要一个表达,而不是一个声明.这是由C#设计者任意选择,特别以允许使用throw与??.