是否有一行 - 条件检查和代码执行操作符?

时间:2017-03-03 09:09:46

标签: c# c#-6.0

有兴趣知道是否可以检查条件以及是否成功,而不是执行代码 - 在一行中,类似于条件运算符。 条件运算符看起来像这样:

condition ? first_expression : second_expression;

我问的是,如果有这样的事情:

condition ? code_execution;

例如:

var i = 0, j = 1;
j==1 ? i = 10;

使这成为可能的唯一方法是创建某种函数,该函数执行所需的代码并返回一些不必要的值,以后将其分配给非必要的变量。这是这样的:

var i = 0, j = 1;
int? tmp = true ? workaround(ref i) : null;

// defined somewhere 
public void workaround(ref int foo){
  foo = 10;
  return null;
}

是否有这样的事情,或者我只是没有看到应该怎么做?

3 个答案:

答案 0 :(得分:7)

var i = 0, j = 1;
if( j==1) i = 10;

答案 1 :(得分:4)

简短回答是否。

恕我直言,你应该避免它,最好使控制流语句明显,这样更容易阅读..

所以 if(j==1) i = 10;会做

我个人更喜欢

if(j==1)
{
   i = 10;
}

因为它更容易为我阅读

答案 2 :(得分:0)

您可以使用已有的工具完成此操作:

var j = 1;
var i = j == 1 ? 0 : 10;