简单和简短:C#是否有类似于Ruby的简写if
语句?
return if (condition)
答案 0 :(得分:5)
不,它没有。标准方式的长度完全相同,因此不可能有这样的速记。考虑通常的语法:
if (condition) return;
VS。一个假设:
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;