我运行了代码分析并得到了这条消息:
警告5 CA1822: Microsoft.Performance:'this' 参数(或Visual Basic中的“我”) 'MainForm.CheckFileIfFileIsInUse(字符串)' 从未使用过。将该成员标记为 静态(或在Visual Basic中共享)或 在方法体中使用'this'/'Me'或 至少有一个属性访问者,如果 适当。 d:\ WORK \更新\更新\ MainForm.vb
我不确定我理解它。这是它所指的行:
Dim testfile As String = thefilename & ".tst"
它说从未使用它,但在下一行我有这个:
If IO.File.Exists(testfile) Then
IO.File.Delete(testfile)
End If
所以我知道它正被使用。我在两个地方都有同样的信息我不明白为什么它说它从未使用过。
帮助一个困惑的新手找到自己的方式:P
像往常一样感谢 Eroc
答案 0 :(得分:7)
它只是向您展示方法的第一行 - 该行的内容并不重要。关键是该方法不会在任何地方使用Me
引用,因此您可以将其声明为Shared
方法。
换句话说,而不是:
Sub CheckFileIfFileIsInUse(ByVal thefilename as String)
Dim testfile As String = thefilename & ".tst"
If IO.File.Exists(testfile) Then
IO.File.Delete(testfile)
End If
End Sub
有:
Shared Sub CheckFileIfFileIsInUse(ByVal thefilename as String)
Dim testfile As String = thefilename & ".tst"
If IO.File.Exists(testfile) Then
IO.File.Delete(testfile)
End If
End Sub
答案 1 :(得分:2)
该消息指的是整个方法CheckFileIfFileIsInUse
。它告诉你,该方法中没有任何东西可以访问该类的实例成员,所以你不妨声明方法Shared
。
Shared Sub CheckFileIfFileIsInUse(ByVal thefilename as String)
答案 2 :(得分:2)
将您的方法CheckFileIfFileIsInUse声明为共享。而不是声明方法的新实例,只需直接引用它。
Use This
MyClass.CheckfileIfFileisInUser(filename)
而不是
Dim newclass as Myclass
newclass.CheckfileIfFileisInUser(filename)
答案 3 :(得分:0)
错误是说您不需要类(您的表单)的实例来使用Method CheckFileIfFileIsInUse