Strings.Replace 方法是用在字串取代常用方法,常用的呼叫方式如下

Strings.Replace("原字串","尋找的字串","取代的字串")

 

可是最近發現一個問題,就是當原字串為 String.Empty (空字串) 時,其傳回值會為 Nothing。

如下程式碼會發生「參考的物件具有 'Nothing' 的值」的錯誤訊息。因為原字串為空字串,透過 Strings.Replace 方法會傳回 Nothing,所以會造成這個錯誤。

Strings.Replace(string.Empty,"@","").Length

 

所以在使用 Strings.Replace 方法要特別注意這點,防止發生異常的錯誤。而我的作法就是撰寫另一個 StrReplace 方法來取代 Strings.Replace 方法,防止這類錯誤。

        ''' <summary>
        ''' 字串取代。
        ''' </summary>
        ''' <param name="Expression">原始字串。</param>
        ''' <param name="Find">搜尋的子字串。</param>
        ''' <param name="Replacement">取代的子字串。</param>
        Public Shared Function StrReplace(ByVal Expression As String, _
            ByVal Find As String, ByVal Replacement As String) As String
            If String.IsNullOrEmpty(Expression) Then
                Return String.Empty
            Else
                Return Replace(Expression, Find, Replacement)
            End If
        End Function

ASP.NET 魔法學院


Feedback

  • 路人 2008/7/11 下午 12:59 回覆

    # re: Strings.Replace 方法的注意事項

    前面加一個判斷是就好有需要寫一個Function  嗎?

     

  • jeff377 2008/7/11 下午 01:02 回覆

    # re: Strings.Replace 方法的注意事項

    每個使用的地方都要另外判斷,那會比寫一個 function 更方便嗎?

  • 卡通服装 2008/11/25 下午 03:03 回覆

    # re: Strings.Replace 方法的注意事項

    点解?

標題 *
名稱 *
Email (將不會被顯示)
Url
回應
登入後使用進階評論
Please add 3 and 8 and type the answer here: