我有这个代码:
newUrl = Request.RawUrl.ToString.Replace(Server.UrlEncode(category), "")
当 category="" 我得到错误:字符串不能是零长度。参数名称:oldValue
所以我想添加一个新的替换方法,除了一个空字符串作为要替换的参数之外。我不想检查 category 是否为空字符串,因为检查需要经常进行,并且会使我的代码过于复杂。所以我想添加一个方法“ReplaceNew”或用一个额外的参数“ignoreEmptyValue”重载String对象的“Replace”方法。
我试过了:
Public Module CustomMethods
Public Function ReplaceEx(original As String, pattern As String, replacement As String) As String
If [String].IsNullOrEmpty(pattern) Then
Return original
Else
Return original.Replace(pattern, replacement)
End If
End Function
End Module
和
Public Class GlobalFunctions
Public Shared Function ReplaceEx(original As String, pattern As String, replacement As String) As String
If [String].IsNullOrEmpty(pattern) Then
Return original
Else
Return original.Replace(pattern, replacement)
End If
End Function
End Class
然后我尝试了:
newUrl = Request.RawUrl.ToString.ReplaceEx(Server.UrlEncode(category), "")
但是 ReplaceEx 方法不可用这种方式,我得到错误:
“ReplaceEx”不是“字符串”的成员。
我真的想在 String 对象上使用 ReplaceEx 方法,因为我不想重构我的代码,而是用 .ToString.ReplaceEx 方法替换所有 .ToString.Replace 方法。我该怎么做?