
プロシージャの外に記した変数があるのですが、
(Dim IniFileName as string = "myapp.ini")など
Public Shared Sub 内でIniFileNameを使おうとすると
---------
クラスの明示的なインスタンスを指定しないで、共有メソッドまたは共有メンバ初期化子内からクラスのインスタンス メンバへ参照することはできません。
---------
というエラーが出てしまいます。
クラスの明示的なインスタンスを指定したいのですが、
意味がさっぱり分かりません。
class.IniFileNameとかForm1.IniFileNameなどとしてみたのですが違うようです。
一つ正解をご教示頂けたらと思います。
宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
参考URLの「インスタンスを作成せずに呼び出せるメソッド 」が参考になるかもしれません。
Sharedをつけると、インスタンス生成しなくても呼び出せるメソッドになるので、インスタンスに属するメンバ変数などにアクセスできません。
Sharedメソッドから参照したいのであれば、
そのSharedメソッドと同じクラス内でShared変数とするか、Sharedメソッドの引数にするかなどで対応できます。
参考URL:http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbne …
No.2
- 回答日時:
つまり、shared(クラス)メソッドから、インスタンスのメンバをインスタンスを作成もしてないのにアクセスしようとしているというようなことですかね?
sharedなプロシジャー(メソッド)が呼び出されるとき、アクセスしようとしているインスタンスがあるとは限りません。(引数として渡せばべつだけど)
何にアクセスしようとしているかよく考えるべきだと思います。
同じくsharedな変数(クラスの中で共有される)ならアクセスできると思いますが、それをsharedなメンバにするかインスタンスのメンバにするかは自分で決めねばなりません。
多分、共有変数的な使い方をするのでしょうからsharedにすればいいと思います。
やりたいことがわからないとどれが正解ということは言えないと思います。

No.1
- 回答日時:
Sharedしているからではないでしょうか。
(1)Sharedするのをやめる
(2)Dim IniFileName as string = "myapp.ini"
をプロシージャー内で宣言する
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「タイプ初期化子が例外をスローしました」エラー何?
Visual Basic(VBA)
-
CloseとDisposeの違い
Visual Basic(VBA)
-
VB.NET getとsetの概念がわかりません。
Visual Basic(VBA)
-
-
4
vb.netで画面のコントロールId名を変数で動的に制御し処理する方法
Visual Basic(VBA)
-
5
VB.NETで他のEXEを実行させる
Visual Basic(VBA)
-
6
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
7
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
8
【VB.NET】テキストボックスにフォーカスが移動すると、全選択されてしまいます。
Visual Basic(VBA)
-
9
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
10
Form1上にあるTextBox1を Module1.vbから参照したい
Visual Basic(VBA)
-
11
VBでグローバル変数を宣言するには
Visual Basic(VBA)
-
12
FriendとPublicの違い。。。
Visual Basic(VBA)
-
13
オブジェクト参照がオブジェクト インスタンスに設定されていません というエラーについて
Microsoft ASP
-
14
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
15
テキストボックスかラベル上の表示を縦に中央揃えしたい
Visual Basic(VBA)
-
16
Handlesについて
Visual Basic(VBA)
-
17
[VBA] Classから他のClassを呼び出す場合
Visual Basic(VBA)
-
18
【VB.NET】日付型の列にNULLを登録する方法について
SQL Server
-
19
VBの質問#if 0 then ってどう言う意味?
Excel(エクセル)
-
20
コントロールを移動できない
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
オブジェクト参照がオブジェク...
-
フォームのCheck boxとOLEObjec...
-
JSPでの表示
-
プログラミング、シューティン...
-
「インスタンス」の意味をわか...
-
変数の参照でエラーが出てしま...
-
中学のクラス数
-
「タイプ初期化子が例外をスロ...
-
0歳児の指しゃぶりに関して
-
河合塾
-
VBスクリプトでテキストファイ...
-
javascriptからjavaを呼び出したい
-
エクセルVBAで、条件に一致する...
-
進学校通ってたんですけど、眼...
-
canvasで表示されてる画像を1...
-
河合塾のクラス分けについて
-
多人数のじゃんけんプログラム
-
ヒグマを撃退
-
C# 「データが失なわれる可能性...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
変数名の付け方
-
private static という変数の修飾
-
C#において、同じインスタンス...
-
複数の変数を宣言する時、同時...
-
オブジェクト参照がオブジェク...
-
VB.NET getとsetの概念がわかり...
-
フォームの存在をチェックする方法
-
変数の参照でエラーが出てしま...
-
C# インスタンスの破棄
-
生成したインスタンスを削除す...
-
文字列を日付に変換でParseExce...
-
次の日本語の意味を教えて下さい
-
C#「オブジェクト参照が必要で...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
[Visual C#] 優先される処理に...
-
newしないインスタンス?実体化...
-
C#の構造体の開放のしかた
-
javaのクラスの作り方、エラー...
おすすめ情報