1

コード分​​析を実行したところ、次のメッセージが表示されました。

警告 5 CA1822 : Microsoft.Performance : 'MainForm.CheckFileIfFileIsInUse(String)' の 'this' パラメータ (Visual Basic では 'Me') は使用されません。メンバーを static (または Visual Basic では Shared) としてマークするか、必要に応じて、メソッド本体または少なくとも 1 つのプロパティ アクセサーで 'this'/'Me' を使用します。D:\WORK\Update\Update\MainForm.vb

よくわかりません。これは、それが参照している行です:

Dim testfile As String = thefilename & ".tst"

決して使用されないと言っていますが、次の行にこれがあります:

If IO.File.Exists(testfile) Then
    IO.File.Delete(testfile)
End If

だから使われているのは知っている。同じメッセージが 2 か所にあり、なぜ使用されていないと言っているのかわかりません。

混乱した初心者が自分の道を見つけるのを手伝ってください:P

いつもありがとう、エロク

4

4 に答える 4

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
于 2009-07-06T18:21:58.817 に答える
2

メッセージはメソッド全体を参照していますCheckFileIfFileIsInUse。そのメソッドにはクラスのインスタンスメンバーにアクセスしているものがないことを示しているので、メソッドを宣言することをお勧めしますShared

Shared Sub CheckFileIfFileIsInUse(ByVal thefilename as String)
于 2009-07-06T18:24:18.560 に答える
2

メソッド CheckFileIfFileIsInUse を共有として宣言します。メソッドの新しいインスタンスを宣言する代わりに、直接参照するだけです。

Use This
MyClass.CheckfileIfFileisInUser(filename)

それ以外の

 Dim newclass as Myclass
 newclass.CheckfileIfFileisInUser(filename)
于 2009-07-06T18:26:38.807 に答える
0

エラーは、メソッドCheckFileIfFileIsInUseを使用するためにクラス(フォーム)のインスタンスは必要ないことを示しています。

于 2009-07-06T18:23:18.033 に答える