お世話になります。VB2005Expressです。
あるプロジェクトが、a.vb及びb.vbから構成されています。
a.vbの中身は、
Option Explicit On
Option Strict Off
Public Class a
Public c As String
End Class
となっています。
これを、b.vb上で、
Module b
Public Sub test()
Dim t As String
t = a.c
End Sub
End Module
としているのですが、これはこれで期待通りの動作をしています。(cが"123"なら、tも"123"になる)
さて、デバッグのステップイン等を使う際に、test()中のコードを追いかけている時で、tの値を知りたい場合はウォッチ式に"t"を与えれば良いのですが、cの値を知りたい場合はウォッチ式に何を与えれば良いのでしょうか。
"c"だと、「名前cは宣言されていない」というエラーが出ます。
"a.c"だと、「非共有メンバを参照するには、オブジェクト参照が必要です」というエラーが出ます。
t = a.c
↑このようにインスタンスを生成させずにa.cを利用するのであるなら、cをSharedにすればよいかと思います。
↓のように
Public Shared c As String
そうすれば共有メンバとなるので、ウォッチ式でa.cとしても
非共有メンバを参照するには~
のエラーは出なくなると思います。
試してないので、参考までに。
お礼
上手くいきました。ご教示、ありがとうございました。 VBは奥が深い。 いや、僕が浅いだけなのか・・・。