Strings.Replace 方法是用在字符串取代常用方法,常用的呼叫方式如下
Strings.Replace("原字符串","寻找的字符串","取代的字符串")
可是最近发现一个问题,就是当原字符串为 String.Empty (空字符串) 时,其传回值会为 Nothing。
如下程序代码会发生「参考的对象具有 'Nothing' 的值」的错误讯息。因为原字符串为空字符串,透过 Strings.Replace 方法会传回 Nothing,所以会造成这个错误。
Strings.Replace(string.Empty,"@","").Length
''' <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

可是最近发现一个问题,就是当原字符串为 String.Empty (空字符串) 时,其传回值会为 Nothing。
如下程序代码会发生「参考的对象具有 'Nothing' 的值」的错误讯息。因为原字符串为空字符串,透过 Strings.Replace 方法会传回 Nothing,所以会造成这个错误。

所以在使用 Strings.Replace 方法要特别注意这点,防止发生异常的错误。而我的作法就是撰写另一个 StrReplace 方法来取代 Strings.Replace 方法,防止这类错误。













