在检查null时避免使用else

时间:2014-04-07 12:28:06

标签: vb.net

在VB.NET中,我有一个像这样的if else块

If a is null
    Callb()
Else
    Callc()

这两种方法都不会使任何东西无效 我想在这里删除if else块

是否有简单的方法可以用一个单一的班轮代码写入

2 个答案:

答案 0 :(得分:4)

只需使用执行此操作的特定操作:

 public void CallFunction(object a)
 {
   if (a == null)
       Callb()
    else
       Callc()
 }

然后你可以在验证程序中调用它:

 CallFunction(s);

另外,看看here,这正是您在这里提出的问题以及提供了一些答案的地方。但对我来说,他们似乎都有点矫枉过正,而且很麻烦。 if/else没有任何问题,请保持简单。

编辑:我看到你将标签从C#更改为VB.NET,但我确信你可以转换上面的C#代码:)

答案 1 :(得分:0)

L-Three的答案很好,最初发布的代码也很好。如果你真的想让它变得可爱并使它成为单行,你可以这样做:

首先,让CallACallB返回一些内容。字面意思(你不必实际使用它返回的东西)。

然后,您可以进行如下调用:

Dim foo As Object = If(someCondition, CallA(), CallB())

同样,您不必对此变量实际执行任何操作。

我同意其他帖子关于当你保留If/Else块时意图更清晰。我发布的代码较短,但是在你写完这样的东西后,你的同事会讨厌你。我不建议养成它的习惯。