简单而简短:C# 是否有if
类似于 Ruby 的速记语句?
return if (condition)
不,它没有。标准方式的长度完全相同,因此可能没有这样的速记方式是合理的。考虑通常的语法:
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;