いここ清潔切り札性能:場合... ELSE IF()対使用
バージョン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
バージョン2:箱なしString
で1つの取引直接
Function MyFunc(ByVal param as String) As String
return If(param,"foo")
バージョンs。バージョン2はすべてのボックス付きObject
を扱います。 COMMENT
[コメントを追加することはできません] [)(場合オブジェクトとしてとしてTestExpression、FalsePartを取り、オブジェクトを返す]
を:ja72、私の命名を修正しました。
コメント:Marc、バージョン2に行くのですか?
ボックス化された/ボックス化されていない文字列はありません。ボクシングは、 'object'としてアクセスされる値の型にのみ適用されます。文字列は参照型ですが、そこには**オブジェクトがありません。最後に、VBはヌル合体演算子を持たないのですか? C#では 'return param? "foo"; ' –
@Marc Gravel +1。 VB.Netには??、あなたがそれを見ている。 if(obj1、obj2)。 :) –
参照してくださいhttp://stackoverflow.com/questions/4619593/is-the-null-coalesce-operator-thread-safe - それはC#のですが、洞察力があるはずです(最初の返信を参照)。同じことを行ってVB.NET ILを検査することもできます。 –