使用If ... Else vs If()

1 vb.net performance

清洁度是否胜过这里的表现:

版本1:

Function MyFunc(ByVal param as String) As String
    Dim returnValue as String
    If param Is Nothing Then
        returnValue = "foo"
    Else
        returnValue = param
    return returnValue
Run Code Online (Sandbox Code Playgroud)

版本2:

Function MyFunc(ByVal param as String) As String
    return If(param,"foo")
Run Code Online (Sandbox Code Playgroud)

版本1直接处理未装箱String的.版本2处理所有盒装Object.[If()将TestExpression作为Object,将FalsePart作为Object并返回一个Object]

[无法添加评论]
评论:ja72,修正了我的命名.
评论:Marc,你会选择第2版吗?

Joh*_*ers 7

我认为清晰度胜过任何事情.

If(obj1,obj2)函数是VB.NET的空合并运算符.它的功能与obj1 ?? obj2C#相同.因此,每个人都应该知道它意味着什么,并且应该在简洁性很重要的地方使用它.

虽然If/Else声明干净,简单,而且很明显,但在这种特殊情况下,我赞成这个If功能.

  • @John Saunders:我不同意.编写隐秘代码和使用简单而简洁的语言结构之间存在着天壤之别,使用该语言的人应该知道(空合并运算符是哪个). (3认同)