C# 使用lambda根据if语句执行操作
如何使用lambda在一行中编写一个奇特的if语句 我想要这样的东西:C# 使用lambda根据if语句执行操作,c#,.net,lambda,C#,.net,Lambda,如何使用lambda在一行中编写一个奇特的if语句 我想要这样的东西: this.SomeBoolValue == false ? (() => MessageBox.Show("False!")) : (() => MessageBox.Show("True!")); 谢谢一些不使用lambda的“单线”变体,它们都实现了相同的功能: if(this.SomeBoolValue == false) MessageBox.Show("False!"); else MessageBo
this.SomeBoolValue == false ? (() => MessageBox.Show("False!")) : (() => MessageBox.Show("True!"));
谢谢一些不使用lambda的“单线”变体,它们都实现了相同的功能:
if(this.SomeBoolValue == false) MessageBox.Show("False!"); else MessageBox.Show("True!");
MessageBox.Show(this.SomeBoolValue ? "True!" : "False!");
MessageBox.Show(string.Format("{0}!", this.SomeBoolValue));
这真的很愚蠢,你不应该那样做但出于教学目的,这里的代码可以满足您的需要
(this.SomeBoolValue == false
? (Action)(() => MessageBox.Show("False!"))
: (Action)(() => MessageBox.Show("True!")))();
操作
),因为lambda表达式在默认情况下是无类型的-它们是根据上下文键入的()
明显的问题时间:为什么?出于好奇,再加上有一个花哨的代码。接下来的问题:为什么lambda,这里根本没有必要?可以不用lambda,更多关于一行if语句的古玩。其中“花哨”意味着“难以理解和维护”。不知道为什么有人投反对票,这是正确的。不管怎样,我给你一个+1