在C#中使用if块之外的变量持久化

时间:2013-11-11 22:12:23

标签: c# razor scope

我可以从if代码块中保留变量吗?

我有

if(some condition){
  var result=queryexecute(some query);
}

...Some non dependent code...

if(result != null){
  ....
}

我得到的结果在当前上下文中不存在。我猜测结果是本地的if块。由于两者之间的代码,我不希望组合两个代码块。有没有办法在第二个if块中定义结果?

queryexecute的返回类型是'public static IEnumerable'。我非常清楚知道如何声明该类型的空对象。但是,如果有人能够如此慷慨地阐明那么我就能做到这一点。

2 个答案:

答案 0 :(得分:7)

您需要从var切换到声明的类型:

IEnumerable result = null; //or whatever it is

if(some condition){
  result=queryexecute(some query);
}

...Some non dependent code...

if(result != null){
  ....
}

答案 1 :(得分:1)

可替换地:

var result = some_condition ? queryexecute(somequery) : null;

// ...

if (result != null) {
    ...
}