这玩意不是bug,再说了这个是.net自身的语法,不是foxtable创造的。
Str = Str.Replace(vbcrlf,Chrw(12276))和Str = .Replace(vbcrlf,Chrw(12276))改变的都是外部的str变量,其实with str内部有一个独立的变量使用,一直没有变过
with 和 end with之间形成了一个独立的程序域,可以把with理解为一个sub方法。自行测试一下下面代码,原理是一样的
全局代码
Public Sub abc(str As String)
Dim s As String = str
s = s.replace("1","A")
End Sub
Public Sub abc2(str As String)
str = str.replace("1","A")
End Sub
命令窗口测试
Dim str As String = "1"
abc(str)
Output.Show(str)
abc2(str)
Output.Show(str)