定义此扩展方法的缺点是什么?

时间:2011-12-16 15:59:52

标签: .net vb.net

我有一堆看起来像这样的重复代码:

If mValue is Nothing Return ""
Return mValue.ToUpper

我定义了以下扩展方法来减少重复代码:

<System.Runtime.CompilerServices.Extension()>
Public Function EmptyIfNull(this As String) As String
    If String.IsNullOrEmpty(this) Then Return ""
    Return this
End Function

重复的代码可以重写为:

Return mValue.EmptyIfNull.ToUpper

这有不足之处吗?

3 个答案:

答案 0 :(得分:2)

唯一的缺点是你实际上正在重新创建语言中的内容(空合并运算符,或者If function,因为它是在VB.NET中实现的)

Return If(mValue, "").ToUpper()

应该做你想要的。

至于您的扩展方法,您无需拨打String.IsNullOrEmpty,因为您只需要处理Nothing的情况。

答案 1 :(得分:1)

不,这样做没有任何缺点。该方法很简单,它涵盖了一个合法的用例,并且命名良好。

这里唯一需要考虑的是你实际使用它的方式:如果ArgumentNullException是{{1},那么抛出mValue(或更合适类型的其他例外)可能更合适 - 但这取决于调用者。

答案 2 :(得分:0)

很容易理解它的作用(这是最重要的事情)。

它还可以生成更清晰的代码。