不能使用三元作为返回null

时间:2016-04-05 16:11:34

标签: c#

我希望复制这个条件:

string responseText = getData();     
if(responseText == null){ return; }

使用三元运算符,我尝试的是:

 responseText == null ? return : null;

但我得到return用红色加下划线:

  

return不是表达式的有效术语。

基本上我希望在responseText为空时返回此函数的代码并返回,而如果与null不同,我需要继续我的代码。我做错了什么?

6 个答案:

答案 0 :(得分:2)

三元运算符的目的是能够创建使用条件的表达式。

它不是用于控制程序的流程,也不应该尝试以这种方式使用它。

坚持你的if声明。

答案 1 :(得分:2)

三元运算符用于赋值:

string a = isEmpty ? item : null; //this is OK

如果您不指定任何内容,则无法使用三元操作。

response == null ? return : null; //what is this??

你所做的,可能已经是正确的了:

if (responseText == null)
    return;
//do something else when text is not null

答案 2 :(得分:0)

三元运算符是表达式 - 它根据条件返回一个值或另一个值。您正尝试将其用于程序流,这是不可能的。

我认为您的if声明没有错 - 它是否清晰,简洁,最重要的是,可行

答案 3 :(得分:0)

您无法返回return。返回的值必须是与接收三元表达式结果的变量类型相同的变量。

答案 4 :(得分:0)

三元运算符计算表达式。它无法控制程序的流程。您最好的选择是使用旧式if声明,例如您在问题中提供的声明。

答案 5 :(得分:0)

三元运算符的操作数应该是一个产生值的表达式。但在这种情况下,回报并不会产生任何价值。