C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: VBでグローバル変数


(過去ログ 77 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■45484 / inTopicNo.1)  VBでグローバル変数
  
□投稿者/ RT (196回)-(2010/01/13(Wed) 20:19:25)

分類:[VB.NET/VB2005 以降] 

こんにちは。

VBでプログラミングを行っております。

VBでグローバル変数を使いたいのですが、モジュールの中でpublic宣言した変数をクラスから、参照したいのですが、どのように参照するのかわかりません。何か宣言のようなものが必要なのでしょうか?

また、クラス内でsheredで宣言してする方法と、どのような違いがあるのでしょうか?

どなたか、アドバイスよろしくお願いします。
引用返信 編集キー/
■45487 / inTopicNo.2)  Re[1]: VBでグローバル変数
□投稿者/ ヴァン (53回)-(2010/01/13(Wed) 20:42:10)
No45484 (RT さん) に返信
> こんにちは。
>
> VBでプログラミングを行っております。
>
> VBでグローバル変数を使いたいのですが、モジュールの中でpublic宣言した変数をクラスから、参照したいのですが、どのように参照するのかわかりません。何か宣言のようなものが必要なのでしょうか?
>
> また、クラス内でsheredで宣言してする方法と、どのような違いがあるのでしょうか?
>
> どなたか、アドバイスよろしくお願いします。

引数を持つコンストラクタを実装する方法じゃダメですかね。
引用返信 編集キー/
■45488 / inTopicNo.3)  Re[2]: VBでグローバル変数
□投稿者/ RT (197回)-(2010/01/13(Wed) 20:44:07)
No45487 (ヴァン さん) に返信

> 引数を持つコンストラクタを実装する方法じゃダメですかね。

モジュールを使ったやり方(宣言した変数の使い方)を知りたいんです。
引用返信 編集キー/
■45489 / inTopicNo.4)  Re[1]: VBでグローバル変数
□投稿者/ やじゅ (1446回)-(2010/01/13(Wed) 20:56:37)
やじゅ さんの Web サイト
No45484 (RT さん) に返信
> VBでグローバル変数を使いたいのですが、モジュールの中でpublic宣言した変数をクラスから、参照したいのですが、どのように参照するのかわかりません。
> 何か宣言のようなものが必要なのでしょうか?
>
> また、クラス内でsheredで宣言してする方法と、どのような違いがあるのでしょうか?

VB.NETのモジュールの正体は?
http://www.atmarkit.co.jp/fdotnet/dotnettips/248module/module.html
引用返信 編集キー/
■45490 / inTopicNo.5)  Re[2]: VBでグローバル変数
□投稿者/ RT (198回)-(2010/01/13(Wed) 21:09:36)
No45489 (やじゅ さん) に返信

> VB.NETのモジュールの正体は?
> http://www.atmarkit.co.jp/fdotnet/dotnettips/248module/module.html

見させて頂いたのですが、メンバの参照方法がいまいちわかりません。

Importsステートメントにより参照していれば、モジュール名を省略して直接メンバを参照することができる。
と書いてありますが、何をインポートすればよいのでしょうか?
引用返信 編集キー/
■45495 / inTopicNo.6)  Re[1]: VBでグローバル変数
□投稿者/ よねKEN (432回)-(2010/01/13(Wed) 22:10:37)
2010/01/13(Wed) 22:13:43 編集(投稿者)
No45484 (RT さん) に返信
> VBでグローバル変数を使いたいのですが、

「お勧めはしませんが」と前置きをした上で・・・

> モジュールの中でpublic宣言した変数をクラスから、参照したいのですが、
> どのように参照するのかわかりません。何か宣言のようなものが必要なのでしょうか?

モジュールの中で既に宣言してあるなら、後は普通の変数と同じように使うだけです。
1つのプロジェクト内の話ですよね?

例えばMoudule1.vbに以下のようにモジュールを定義したとします。

Module Module1
    Public グローバル変数 As String
End Module


同じプロジェクト内なら、

x = グローバル変数    ' xは適当な変数です。特に意味はありません

や

グローバル変数 = "あいう"

のように使用できます。

> また、クラス内でsheredで宣言してする方法と、どのような違いがあるのでしょうか?

Public Class Class1
    Public Shared グローバル変数 As String
End Class

とあった場合、これを使用するには、

x = Class1.グローバル変数    ' xは適当な変数です。特に意味はありません

や

Class1.グローバル変数 = "あいう"

のように使用します。「Class1.」で修飾してやる必要があります。
あるいは、使用したいコードを書いているファイルの先頭で

Imports Class1

のように記述しておくことで、Moduleで宣言した場合と同様に

x = グローバル変数    ' xは適当な変数です。特に意味はありません

や

グローバル変数 = "あいう"

のように書くこともできます。

ModuleはSharedなメンバー(ローカルでない変数、プロパティ、メソッドなど)だけを持つClassとほぼ等価です。
Moduleの場合はモジュール名で修飾することなくそのメンバーにアクセスできる点が異なります。

引用返信 編集キー/
■45512 / inTopicNo.7)  Re[3]: VBでグローバル変数
□投稿者/ はつね (1157回)-(2010/01/14(Thu) 11:08:18)
はつね さんの Web サイト
No45488 (RT さん) に返信
> モジュールを使ったやり方(宣言した変数の使い方)を知りたいんです。

Module Module1
Public Var1 As String
End Module

だったら、Module1.Var1で使えませんか?

引用返信 編集キー/
■45514 / inTopicNo.8)  Re[2]: VBでグローバル変数
□投稿者/ επιστημη (2386回)-(2010/01/14(Thu) 11:46:44)
επιστημη さんの Web サイト
VBのModuleは全メンバがSharedなNotInheritableクラスに変換されるはず。
なので

Module Module1
 Public Var1 As String
End Module

だったらModule1.Var1で使えるでしょうし、
名前解決さえできれば Var1 だけでもいいハズ。(Moduleの特権)


引用返信 編集キー/
■45515 / inTopicNo.9)  Re[4]: VBでグローバル変数
□投稿者/ RT (199回)-(2010/01/14(Thu) 12:16:47)
2010/01/14(Thu) 12:17:02 編集(投稿者)

No45512 (はつね さん) に返信
> Module Module1
> Public Var1 As String
> End Module
>
> だったら、Module1.Var1で使えませんか?

使えません。名前〜は宣言されていませんと出ます。

No45514 (επιστημη さん) に返信
> VBのModuleは全メンバがSharedなNotInheritableクラスに変換されるはず。
> なので
>
> Module Module1
>  Public Var1 As String
> End Module
>
> だったらModule1.Var1で使えるでしょうし、
> 名前解決さえできれば Var1 だけでもいいハズ。(Moduleの特権)

使えません。名前〜は宣言されていませんと出ます。

No45495 (よねKEN さん) に返信
> ModuleはSharedなメンバー(ローカルでない変数、プロパティ、メソッドなど)だけを持つClassとほぼ等価です。
> Moduleの場合はモジュール名で修飾することなくそのメンバーにアクセスできる点が異なります。

Sharedなメンバーだけを持つClassを使ってやることにしました。

皆さん、アドバイスありがとうございました。またよろしくお願いします。
解決済み
引用返信 編集キー/
■45519 / inTopicNo.10)  Re[3]: VBでグローバル変数
□投稿者/ すがり (92回)-(2010/01/14(Thu) 12:58:54)
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Module1.Var1 = "hogehoge"
        MessageBox.Show(Module1.Var1)
        Var1 = "fugafuga"
        MessageBox.Show(Var1)
    End Sub

    Module Module1
        Public Var1 As String
    End Module

Windowsフォームアプリケーションを作成しボタン1個配置し、クリックしたら
メッセージボックス表示する適当なコードですが、普通に動きましたけど。

VS2008EE
WinXPSP3

解決済み
引用返信 編集キー/
■45611 / inTopicNo.11)  Re[4]: VBでグローバル変数
□投稿者/ Jitta on the way (507回)-(2010/01/15(Fri) 18:27:59)
宣言したところと、使用したいところの、プロジェクトや名前空間がずれていたりして?
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -