2

简单而简短:C# 是否有if类似于 Ruby 的速记语句?

return if (condition)
4

1 回答 1

5

不,它没有。标准方式的长度完全相同,因此可能没有这样的速记方式是合理的。考虑通常的语法:

if (condition) return;

与假设相比:

return if (condition);

引入这种“反向”语法的一个可能原因是首先表达了主要意图。因为是从左到右的阅读,那么它会更容易理解,从而导致更易读的代码。


从语言设计的角度来看,使用不同的关键字是有意义的,例如when为了防止混淆错误。考虑以下行代码:

return            // missing ; here
if (condition);   // no warning (except empty 'then' part)

大概应该写成:

return;           // ; here present
if (condition);   // unreachable code warning here

begin … end从节省字符的角度来看,它在语言中是有意义的。像这样的构造:

if condition begin
    return;
    end if;

如果写为:

return when condition;
于 2016-03-10T10:53:14.903 回答