
こんばんわ!
VB6.0からの移行でVB.net2012に挑戦中なんですが、グローバル変数の宣言の仕方で分からないことがあり質問しに着ました!
内容
モジュール内で
public hoge as string="aaa"
と宣言するのと
モジュール内で
public hoge as string
と宣言しておいて
フォーム起動時に
hoge="aaa"
と宣言するのにどのような違いがあるのでしょうか?
hogeの変数を変更したいのですが、上記の方法だと動いて、下記の方法だと動かないのですが・・・
まだ良く分かっていないので、程度の低い質問で申し訳ないのですが、アドバイスのほどよろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
> グローバルで変数として一箇所のみで宣言しているのですが、それで別の変数になることはあるのでしょうか?
hoge が本当は text とかなら有り得ます。この場合、フォームの Text プロパティが変更されます。
別のクラスなどを Imports していて、そちらに同名の変数がある場合も有り得るかも知れません。
ただし、スコープが同じ変数が複数あると↓文法エラーが出るはず。
http://msdn.microsoft.com/ja-jp/library/856b0w3t …
http://msdn.microsoft.com/ja-jp/library/03x63w1z …
上記の現象の確認には、変数を使用している場所で右クリックメニューから「定義へ移動」で
その変数がどこで宣言されたものを参照しているか分かります。
変数のスコープが狭いものが優先して使用されるため、ローカル宣言や、自分が定義していなくとも
既に VB.NET で宣言されているものとかぶってはだめです。
>意味合い自体は同じであると認識しているのですが、あっていますか?
変数宣言は同じで、初期値が違います。…見たまんまだと思いますが。
>「 public hoge as string」と宣言したhoge
>動かないのは配列の項目数(例えば、hoge_arra(hoge)のように)使用しているのですが
配列の添字を文字列型にするなど話になりません。問題外です。
数値型にして下さい。
定義へ移動は便利ですね^^
使わせてもらいますw
>変数宣言は同じで、初期値が違います。…見たまんまだと思いますが。
ですよね~そのはずなのに動かないです・・・。
>「 public hoge as string」と宣言したhoge
はミスですw失礼しましたw実際はintegerで宣言してますw
色々試して、初期値を入れておいて、改めて別の数値をいれると動いたので、それでやってみます。
本当にナンなんだろう・・・
No.4
- 回答日時:
>色々試して、初期値を入れておいて、改めて別の数値をいれると動いたので、それでやってみます。
つまり変数の宣言の問題ではなくて、初期値の設定の問題だという事ですよね。
フォームのロード前か、フォームのロード時でも初期値の設定のコードの実行前に
使用しているということでは?
モジュール側で配列をグローバル宣言してると、モジュールが呼ばれた際に初期化の
処理が全て走ってしまうからフォームのロードイベントに書いてある初期値設定の
コードを実行する前にモジュール側で初期化しようとしているとか。
プログラムの開始から1行1行ステップ実行すれば分かるのでは?
No.1
- 回答日時:
・form起動より先にhogeを参照するような、動作になっている
・名前空間が違うなどで、「 public hoge as string」と宣言したhogeと、「フォーム起動時にhoge="aaa"」とは別の変数になっている
などが考えられます。
「動かない」とは具体的にどのような状態なのでしょうか?
・form起動より先にhogeを参照するような、動作になっている
なっていないんですToT
・名前空間が違うなどで、「 public hoge as string」と宣言したhogeと、「フォーム起動時にhoge="aaa"」とは別の変数になっている
グローバルで変数として一箇所のみで宣言しているのですが、それで別の変数になることはあるのでしょうか?
動かないのは配列の項目数(例えば、hoge_arra(hoge)のように)使用しているのですが、エラーが出ます・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- C言語・C++・C# 競技プログラミングに関する質問です。 3 2022/04/03 19:51
- JavaScript javascriptで文字分割は、 split() などメソッド不要??? 4 2023/02/06 22:50
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) Excel マクロで For 文のインデックスを先に宣言する理由 7 2022/08/27 00:26
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
このQ&Aを見た人はこんなQ&Aも見ています
-
VBでグローバル変数を宣言するには
Visual Basic(VBA)
-
VB.NETでアクティブなformを知りたい
Visual Basic(VBA)
-
グローバル変数のよくない使い方とその改良例
C言語・C++・C#
-
-
4
VBのReturnの使い方
Visual Basic(VBA)
-
5
【VB.NET】exeを実行すると「発行元を確認できませんでした」
Visual Basic(VBA)
-
6
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
7
【VB.NET】App.configにファイルパスを設定して読み込みたい
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
空メールの自動返信プログラム...
-
HTTPSのとき":"が"%3A"ではなく...
-
htaccessのリダイレクトがルー...
-
C# .NET DataGridView の行を追...
-
指定した スタイルの class の...
-
VC++2005EEにて不可解な挙動
-
MFCのキャプション変更
-
構造体を引数で関数へ渡す
-
Javascriptグローバル変数の値...
-
同じ型【ハイフンと数字】だけ...
-
ASP+アクセスでのSQLコメントに...
-
バイナリファイルから文字列を...
-
ボタンをクリックすると数が増...
-
Boolean型配列中のTrueの有無を...
-
window.onloadでのfunction
-
midiをランダムに再生させ...
-
JavaScript window.openで開く...
-
textareaに入力されたデータを...
-
イベントリスナーの部分を関数...
-
google apps scriptの終了のさせ方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Boolean型配列中のTrueの有無を...
-
HTTPSのとき":"が"%3A"ではなく...
-
ボタンをクリックすると数が増...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
Excel VBA の ChangeFileAccess
-
アンカーリンクをクリックさせ...
-
javascriptで文字挿入でtoggle...
-
ifreamをリロードしたい
-
static と externについて
-
同じ型【ハイフンと数字】だけ...
-
【正規表現】【javascript】CR...
-
System::Drawing::Color::XXXX...
-
MFCのキャプション変更
-
VB.NETで変数の型は自作...
-
【Jquery】changeイベント毎にa...
-
サブウインドウから親ウインド...
-
Vb.netのグローバル変数の宣言...
-
window.onloadでのfunction
-
hogehogeの由来
おすすめ情報