一个等价于return关键字的表达式

rad*_*byx 4 c#

void Foo()
{
    var xMaybeNull = GetX();
    if (xMabyeNull == null) return; // Some way to get rid of this extra
                                    // sentence without loosing the check
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

简单的方法是这样,但编译器需要一个表达式.

void Foo()
{
    List<Disc[,]> xNeverNull = GetX() ?? return;
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

问题是,有没有办法写出someSortOfReturnExpression(我猜不是)或另一种解决方案,可以在一条线上做我正在寻找的东西?

void Foo()
{
    List<Disc[,]> xNeverNull = GetX() ?? someSortOfReturnExpression;
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

jgl*_*uie 8

第一个选项出了什么问题?

我个人坚持这个选择.可能最终维护代码的其他人可读,常见且易懂.