Replace函数不为人注意的返回值

今日一个系统的某个功能抛出一个未引用到实例的错误,检查的结果今天诧异,原因竟然是Replace函数作替换时返回了nothing,问题可以通过以下代码重现:

Dim s As String = Replace("", "a", "b")
If s Is Nothing Then
    Response.Write("nothing")
ElseIf s = "" Then
    Response.Write("空字符串")
Else
    Response.Write("文本内容:" & s)
End If

查阅了Replace的说明文档,该函数确实是这样的一种逻辑,只是以往没有引起注意:

Public Function Replace(ByVal Expression As String, ByVal Find As String, ByVal Replacement As String, Optional ByVal Start As Integer = 1, Optional ByVal Count As Integer = -1, Optional ByVal Compare As Microsoft.VisualBasic.CompareMethod = Binary) As String
     成员属于: Microsoft.VisualBasic.Strings
摘要:
返回一个字符串,在该字符串中,指定的子字符串已被另一个子字符串替换了指定的次数。

参数:
Start: 可选。Expression 中的一个位置,从该位置开始搜索子字符串。如果省略,则假定为 1。
Count: 可选。执行子字符串替换操作的次数。如果省略,则使用默认值 –1,它表示“执行所有可能的替换”。
Expression: 必选。包含要替换的子字符串的字符串表达式。
Compare: 可选。数值,指示在计算子字符串时要使用的比较类型。请参阅值的设置。
Replacement: 必选。要替换为的子字符串。
Find: 必选。要搜索的子字符串。

返回值:
如果 Find 长度为零或为 Nothing, ,则 Replace 返回 Expression.  的副本。如果 Replace 长度为零,则 Replace 返回没有 Find.  的 Expression 的副本。如果 Expression 长度为零或为 Nothing,或者 Start 大于 Expression, 的长度,则 Replace 返回 Nothing. 。如果 Count 为 0,则 Replace 返回 Expression.  的副本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值