Vb.net 检查null时避免if-else

Vb.net 检查null时避免if-else,vb.net,Vb.net,在VB.NET中,我有这样一个if-else块 If a is null Callb() Else Callc() 这两种方法都不会返回任何无效的内容 我想删除这里的if-else块 有没有一种简单的方法来编写一个单一的线性代码,只需使用一个特定的操作即可: public void CallFunction(object a) { if (a == null) Callb() else Callc() } 然后,您可以在验证例程

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

If a is null
    Callb()
Else
    Callc()
这两种方法都不会返回任何无效的内容 我想删除这里的if-else块


有没有一种简单的方法来编写一个单一的线性代码,只需使用一个特定的操作即可:

 public void CallFunction(object a)
 {
   if (a == null)
       Callb()
    else
       Callc()
 }
然后,您可以在验证例程中调用:

 CallFunction(s);
另外,看一看,这正是关于你在这里问什么,以及在哪里提供了一些答案。但对我来说,它们似乎都是杀伤力过大,麻烦太多了。
if/else
没有问题,保持简单


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

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

首先,让
CallA
CallB
返回一些东西。字面上的任何东西(您不必实际使用它返回的内容)

然后,你可以打这样的电话:

Dim foo As Object = If(someCondition, CallA(), CallB())
同样,您实际上不必对这个变量做任何事情


我同意其他帖子的观点,当你只保留
If/Else
块时,意图会更清晰。我发布的代码比较短,但是在你写了足够多这样的东西之后,你的同事会讨厌你。我不建议养成这样的习惯。

为什么要删除if/else?我想避免if-else条件,因为我对代码清理器有两个类似的验证,我想避免这看起来不像C#在不了解更多代码的情况下,我们无法具体说明,但总的来说,这种结构是清晰和可接受的。如果您想删除此结构的大量重复,将其重构为单个组件将是实现这一点的方法。但重构所依赖的有关设计的信息比这里介绍的要多。@webdunia:不要“避免”条件块。它们是语言的基本组成部分,用来表达条件行为。清晰而富有表现力地编写代码,而不是为了尽量减少击键而试图变得非常聪明。你会发现后者更难支持。