我见过几个程序员使用&
和+
进行字符串操作.
如:
dim firstvar as string
dim secondvar as string
dim thirdvar as string
thirdvar = firstvar & secondvar
Run Code Online (Sandbox Code Playgroud)
或者是:
thirdvar = firstvar + secondvar
Run Code Online (Sandbox Code Playgroud)
有关系吗?如果是这样,为什么?
我有一个完全独立于我的主应用程序的更新程序.我运行update.exe来更新app.exe.要检查文件是否正在使用中,我将其移动到另一个文件并捕获错误(如果它正在使用中).如果没有问题,我将其重命名.至少那是我的计划......
主程序:app.exe
更新程序:update.exe
该程序通过网络使用,无需运行任何服务.因此,用户在他们的机器上通过网络运行exe.
我需要在update.exe运行时更新app.exe.要检查app.exe是否仍在使用中,我在try/catch中包含以下内容以查看它是否失败:
IO.File.Move(upddir&"\ app.exe",upddir&"\ app.exe.tst")
IO.File.Move(upddir&"\ app.exe.tst",upddir&"\ app.exe ")
有趣的是,即使app.exe正在运行,移动也可以将其重命名为app.exe.tst而不会出现任何错误.我甚至可以继续在应用程序中没有任何错误.
我以为我不在乎,所以我让另一位程序员看看这个,他验证了我上面所说的内容.
所以,我们尝试将其包裹在try catch中:
Dim readfile As New FileStream(upddir&"\ app.exe",FileMode.Open,FileAccess.Read,FileShare.None)
readfile.Dispose()
我把文件共享称为无,至少我认为它会显示文件中有人.
它仍然没有任何错误.
任何人都知道为什么我可以重命名正在使用的文件?另外,有没有比我现在做的更好的方法呢?
谢谢!Eroc
我正在使用VS2008并创建表单.默认情况下,运行应用程序时,未显示使用&符号时文本框中字符的下划线.
恩.在我按下ALT键之前,"&Goto Here"没有强调G.
有没有办法让这个文字强调我在表单/应用程序启动时将&符号放在前面,而不是让用户按下alt键?
谢谢!
我运行了一个代码分析并收到了这条消息:
警告5 CA1822:Microsoft.Performance:从不使用'MainForm.CheckFileIfFileIsInUse(String)'中的'this'参数(或Visual Basic中的'Me').将成员标记为静态(或在Visual Basic中为Shared)或在方法体中使用"this"/"Me"或至少使用一个属性访问器(如果适用).d:\工作\更新\更新\ MainForm.vb
我不确定我理解它.这是它所指的行:
Dim testfile As String = thefilename & ".tst"
Run Code Online (Sandbox Code Playgroud)
它说从未使用它,但在下一行我有这个:
If IO.File.Exists(testfile) Then
IO.File.Delete(testfile)
End If
Run Code Online (Sandbox Code Playgroud)
所以我知道它正在被使用.我在两个地方都有同样的信息我不明白为什么它说它从未使用过.
帮助一个困惑的新手找到他的方式:P
谢谢你,像往常一样