【发布时间】:2014-09-22 09:50:24
【问题描述】:
在 c# 中我可以用速记来做这样的事情吗?
bool validName = true;
if (validName)
{
name = "Daniel";
surname = "Smith";
}
else
{
MessageBox.Show("Invalid name");
}
我只是想知道类似的事情是否会起作用,但在这个确切的场景中,我知道如果我做了 name = validName ,你可以分配值? “丹尼尔”:“无效”,但我只是想知道我是否可以执行以下操作?
validName ?
{
name = "Daniel";
surname = "Smith";
}
:
{
MessageBox.Show("Invalid name");
}
【问题讨论】:
-
if/else 非常简短,语义清晰。即使有办法做到这一点(我对此表示怀疑),我还是建议坚持使用 if/else。
-
您的第二个版本“更短”如何?它是相同数量的行、相同的结构、相同数量的运算符。一两次击键真的那么难吗?
-
这是你工作了 20 分钟然后意识到你只是浪费了 20 分钟的事情之一。
-
如果这里的动机只是为了聪明,那么您可能会从这句话中受益……“调试的难度是一开始编写代码的两倍。因此,如果您将代码编写为尽可能聪明,根据定义,你不够聪明,无法调试它。” ——布赖恩·克尼汉
标签: c# lambda shorthand-if