是否有一行 - 条件检查和代码执行运算符?
Is there a one line - condition check and code execution operator?
我们有兴趣了解是否可以检查条件以及是否成功,而不是在一行中执行代码,类似于条件运算符。
条件运算符看起来像这样:
condition ? first_expression : second_expression;
我想问的是是否有这样的事情:
condition ? code_execution;
例如:
var i = 0, j = 1;
j==1 ? i = 10;
使这成为可能的唯一方法是创建某种函数来执行所需的代码和 returns 稍后将分配给无关紧要的变量的一些无关紧要的值。那是这样的:
var i = 0, j = 1;
int? tmp = true ? workaround(ref i) : null;
// defined somewhere
public void workaround(ref int foo){
foo = 10;
return null;
}
是否有这样的事情,或者我只是不知道应该如何做这样的事情?
var i = 0, j = 1;
if( j==1) i = 10;
您可以使用已有的工具完成此操作:
var j = 1;
var i = j == 1 ? 0 : 10;
简短的回答是否定的
恕我直言,你应该避免它,最好让控制流语句明显,这样更容易阅读..
所以
if(j==1) i = 10;
可以
我个人更喜欢
if(j==1)
{
i = 10;
}
因为它对我来说更容易阅读
我们有兴趣了解是否可以检查条件以及是否成功,而不是在一行中执行代码,类似于条件运算符。 条件运算符看起来像这样:
condition ? first_expression : second_expression;
我想问的是是否有这样的事情:
condition ? code_execution;
例如:
var i = 0, j = 1;
j==1 ? i = 10;
使这成为可能的唯一方法是创建某种函数来执行所需的代码和 returns 稍后将分配给无关紧要的变量的一些无关紧要的值。那是这样的:
var i = 0, j = 1;
int? tmp = true ? workaround(ref i) : null;
// defined somewhere
public void workaround(ref int foo){
foo = 10;
return null;
}
是否有这样的事情,或者我只是不知道应该如何做这样的事情?
var i = 0, j = 1;
if( j==1) i = 10;
您可以使用已有的工具完成此操作:
var j = 1;
var i = j == 1 ? 0 : 10;
简短的回答是否定的
恕我直言,你应该避免它,最好让控制流语句明显,这样更容易阅读..
所以
if(j==1) i = 10;
可以
我个人更喜欢
if(j==1)
{
i = 10;
}
因为它对我来说更容易阅读