- - PR -
C#でグローバルな参照
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-06 17:32
すいませんC#で質問があるのですが・・・
Aアプリからコマンドライン引数を指定してBを呼び出しています Bアプリはコマンドライン引数を取得して、処理を進めます Bアプリが最初に取得した引数を、Cフォーム・Dフォーム・Eクラス等さまざまな場所で使用できるようにしたいのですが、 受け取った引数をどのようにセットすれば、どのフォーム・クラスでも参照できるようになるのか分かりません VB.NETではモジュール(どこからでも参照できる変数集)を作成し、public XX as string 的なことで、参照できていたのですが・・・ | ||||||||||||||||
|
投稿日時: 2006-07-06 17:59
A と B は別アセンブリということですね。
コマンドライン引数は関係ないと思います。 コマンドライン引数はあくまで System.String() です。
モジュールであるかどうかも関係ないですよね。 クラスでも静的に値を持つことができますから。 ちなみに、この場合でも同一インスタンスになりませんが、それでも良いのでしょうか? 同一インスタンスでないといけないのであれば、アセンブリを分けない方が賢明なのではないでしょうか。 (後者のような場合、分けてあるとややこしくなります) # 質問内容を正しく理解していないようでしたら、申し訳ありません。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-07-06 18:04
はい、別アセンブリになります
かまいません 開発上AはVB.NET、BはC#で作っています 宜しくお願いします | ||||||||||||||||
|
投稿日時: 2006-07-06 18:44
A と B に関連するところをクラス ライブラリにして参照してはいかがでしょうか? 場合によっては、A か B 自体を依存関係のあるクラス ライブラリにしても良いと思います。 (双方とも、単独で起動したい仕様である場合はこの限りではありません) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-07-06 18:59
クラスライブラリにしてみようと思いますが、、
別クラスを参照するときに、「クラスライブラリ c = new クラスライブラリ();」のようにすると 格納されていた値が消えてしまいます new しなくてもクラスライブラリの値が見える方法ってありますか? また、 現在、1ソリューションの中に、VB.NETプロジェクトとC#プロジェクトがあります VB.NETのフォームから、C#のフォームは呼べるのでしょうか? C#プロジェクトから、VB.NETのモジュールが参照できれば話は解決するのですが、無理でしょうか? | ||||||||||||||||
|
投稿日時: 2006-07-06 19:09
別インスタンスを放り込むわけですから、理屈からいってそうなりますよね?
考え方の方向性がちょっと間違っているかと思います。 1 度だけインスタンスを生成して、それを双方で参照できれば良いと考えてみてください。 これに関しては、「シングルトン」 について調べると、仕様によっては有益になるかと思います。
アクセス修飾子が public であれば可能です。
VB のモジュールは、StandardModuleAttribute という属性を持つ クラス です。 それと、モジュールでなくとも、クラス内に静的なメンバとして持てば参照できますよ。 静的メンバは、C# であれば static、VB であれば Shared というキーワードになります。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-07-06 21:29
全然違う受け取り方をしたのですが、的外れかな?
コマンドライン引数で渡すという事は文字列ですよね? コマンドライン引数限定で言えば Environment.CommandLine という便利なものがあります。 じゃんぬさんも仰ってますが、こんなのでも。
_________________ 囚人のジレンマな日々 |
1