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

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

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

Re[5]: メンバ変数の初期値


(過去ログ 46 を表示中)

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

■25168 / inTopicNo.1)  メンバ変数の初期値
  
□投稿者/ モー (16回)-(2008/09/16(Tue) 15:09:25)

分類:[VB6 以前] 

2008/09/16(Tue) 15:29:26 編集(投稿者)
2008/09/16(Tue) 15:13:26 編集(投稿者)

VB6のクラスモジュール内でpublicのメンバ変数(Public member as Integer)があるのですが、
これを他モジュールまたはアプリよりNewすると同時に初期値もセットされるような
記述方法はありますでしょうか?

例. Public member as integer = 0 のような記述ができればと考えています。

ちなみにこのメンバ変数は定数値ではありません。


よろしくお願いします。

引用返信 編集キー/
■25171 / inTopicNo.2)  Re[1]: メンバ変数の初期値
□投稿者/ たくボン (23回)-(2008/09/16(Tue) 15:13:13)
No25168 (モー さん) に返信
> VB6のクラスモジュール内でpublicのメンバ変数(Dim member as Integer)があるのですが、

パブリック変数にするのではなく、プロパティにしてコンストラクタで初期化してみたらどうでしょうか?

引用返信 編集キー/
■25172 / inTopicNo.3)  Re[1]: メンバ変数の初期値
□投稿者/ 魔界の仮面弁士 (855回)-(2008/09/16(Tue) 15:27:11)
No25168 (モー さん) に返信
> 分類:[VB.NET/VB2005 以降] 
> VB6のクラスモジュール内で
質問の「分類」と「内容」が一致していないようです。

> publicのメンバ変数(Dim member as Integer)があるのですが、
VB6「クラス モジュール」の宣言セクション(General-Declaration) にて
定義された場合、Dim は Public の意味にはならないハズですけれども…。


> これを他モジュールまたはアプリよりNewすると同時に初期値もセットされるような
> 記述方法はありますでしょうか?
それが VB6 だとしたら、クラスの Instancing プロパティを PublicNotCreatable にしておき、
それを、インスタンス生成用のファクトリにて初期化する事になりますね。


あるいは、それほど厳密なカプセル化が不要なのだとすれば、
 Set C = New Class1
として生成するかわりに、インスタンス生成用のプロシージャを別途用意しておき、
 Set C = CreateClass1()
のようにして利用するよう、運用ルールで回避するぐらいかと。
引用返信 編集キー/
■25176 / inTopicNo.4)  Re[2]: メンバ変数の初期値
□投稿者/ モー (17回)-(2008/09/16(Tue) 16:00:36)
No25171 (たくボン さん) に返信
> ■No25168 (モー さん) に返信

早速の回答、指摘(⇒修正しました)ありがとうございます。

現状として、クラスモジュールを利用している別アプリがあり、
こちら側の呼び出し方法(Newの記述のみ)は追加変更せずに、クラスモジュール側の
変更のみでインスタンス生成時に変数の初期化ができる方法はないかと考えておりました。

説明不足ですみません。


>パブリック変数にするのではなく、プロパティにしてコンストラクタで初期化してみたらどうでしょうか?

コンストラクタでの記述がどうも認識されていないようですが、VB6の設定変更は特に必要ないですか?
可能なら引数も渡したいのですが、これは無理そうですね。
引用返信 編集キー/
■25178 / inTopicNo.5)  Re[3]: メンバ変数の初期値
□投稿者/ まどか (587回)-(2008/09/16(Tue) 17:00:50)
Initialize イベントは?
引用返信 編集キー/
■25180 / inTopicNo.6)  Re[4]: メンバ変数の初期値
□投稿者/ 魔界の仮面弁士 (856回)-(2008/09/16(Tue) 17:11:30)
No25178 (まどか さん) に返信
> Initialize イベントは?

そうでした。クラスの場合は

 Private Sub Class_Initialize()
  member = 123
 End Sub

ですね。m(_ _;)m


最初の投稿では
> ちなみにこのメンバ変数は定数値ではありません。
との事なので、引数が渡せない Initialize だと要件を満たさないかとも
思いましたが、その後の投稿を見てみると
> 呼び出し方法(Newの記述のみ)は追加変更せずに
との事なので、Initialize イベントでも対応できそうですね。
引用返信 編集キー/
■25198 / inTopicNo.7)  Re[5]: メンバ変数の初期値
□投稿者/ モー (18回)-(2008/09/16(Tue) 22:10:34)
No25180 (魔界の仮面弁士 さん) に返信
> ■No25178 (まどか さん) に返信

お二方、ありがとうございます。Initializeでも可能なんですね。

試してみます。助かりました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -