Foxtable(狐表)官方栏目BUG收集 → 发现一个Bug,关于With


  共有2380人关注过本帖平板打印复制链接

主题:发现一个Bug,关于With

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105926 积分:538693 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/19 8:59:00 [只看该作者]

这玩意不是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)

 回到顶部