

C#で共有変数の定義をするには、どうしたらよいでしょうか。具体的には、起動パラメータで、任意の文字列(3~4バイト)を渡して、C#アプリケーションを、起動し、プログラムの任意の場所で、そのパラメータを参照したいと考えています。起動パラメータの受け取りは、できるのですが、そのパラメータを、プログラムのどこからも参照できる領域(ここの定義方法が不明)に格納するには、どうしたらよいでしょうか。(2重起動を許す前提です。実行時に1つの目のプログラムにはパラメータ"XYZ"を渡し、2つ目のプログラムを起動時にはパラメータ"ABCD"を渡し、その値により、プログラムの動作を制御したいと思っています)
Windows-xp visual-studio2008 C#でwindowsアプリケーションを作成しています。
No.2ベストアンサー
- 回答日時:
namespace test1
{
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main(string[] args)
{
if (args.Length > 0)
{
strArg = args[0];
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
// ここに記述
static public string strArg = null;
}
}
メインクラスのメンバーとしてスコープが有効な場所に記述します
ありがとうございました。
うまくいきました。Form1表示ごの他の任意の箇所から、strArgの参照ができることも、確認できました。
No.1
- 回答日時:
C#の起動クラス(標準なら Programクラス)にそのパラメータを記憶しておく変数やアクセスするためのメソッド準備してやればいいでしょう
たとえば
static Public string strArg = null;
などと変数を準備して
Mainメソッドを
static void Main( string[] args )
{
if ( args.Length > 0 )
{
strArg = args[0];
}
Application.Run( new Form1());
}
といった具合にします
アクセス方法は
Program.strArg といった具合に『クラス名.変数名』といった具合に静的オブジェクトのアクセス方法に従います
変数の格納自体をprivate等にするなら Getterメソッドを実装しましょう
この回答への補足
回答ありがとうございます。
static Public string strArg = null;
の文は、ソース中のどこに記述すれば良いでしょうか。
以下が、プロジェクト testでアプリケーションを作成したときの
program.csの内容です。
ここのどの場所にいれても、エラーが発生してしまいます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace test1
{
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main(string[] args)
{
if (args.Length > 0)
{
strArg = args[0];
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
C#にて別クラスの関数を使いたい
C言語・C++・C#
-
別のフォームで記述している関数を実行するには?C#
C言語・C++・C#
-
C#でほかのファイルにある自作クラスを使用したい場合
その他(プログラミング・Web制作)
-
4
フルパスから最後のディレクトリ名を取得したい。
Visual Basic(VBA)
-
5
c# 文字列の最後から1文字削除したい
C言語・C++・C#
-
6
C#「オブジェクト参照が必要です」(初心者)
その他(プログラミング・Web制作)
-
7
【C#】別フォームも同時に閉じるには?
C言語・C++・C#
-
8
C# ユーザコントロール内のボタン押下を親で知る
その他(プログラミング・Web制作)
-
9
同じソリューション内の別のプロジェクトのメソッド呼び出し
C言語・C++・C#
-
10
フォームの再読み込み
Visual Basic(VBA)
-
11
C# formの2重起動禁止
C言語・C++・C#
-
12
C#で別のFormへ複数の値を返そうとしているのですがうまくいきません
その他(プログラミング・Web制作)
-
13
「指定されたキャストは有効ではありません。」とエラーが出てしまいます。
Microsoft ASP
-
14
C# get set
その他(プログラミング・Web制作)
-
15
【C#】 あるイベントから別イベントを呼び出す。
その他(プログラミング・Web制作)
-
16
ユーザコントロールのイベント取得について(C#)
その他(プログラミング・Web制作)
-
17
C#でフォームのオブジェクト名を変数名で指定
C言語・C++・C#
-
18
インスタンス参照でアクセスできない。代わりに型名?
C言語・C++・C#
-
19
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
20
ColorをRGBで指定する方法
Visual Basic(VBA)
関連するQ&A
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
現在起動中のアプリケーション...
-
5
イラストレーターCS4のシリアル...
-
6
WSH(VBScript)でアプリケーショ...
-
7
アプリケーションエラー 0xc00...
-
8
スクリーンセイバーのタイマー...
-
9
C#で共有変数の定義をするには
-
10
VBにてタスクマネージャを読む方法
-
11
実行時のコマンドプロンプトを...
-
12
C#でGUI・CUIの判断する仕方を...
-
13
自分自身を更新するプログラム
-
14
pccNTmon.exeとntrtscan.exeの違い
-
15
対象のアプリケーションが終了...
-
16
VBSでのSendKeysでの画面の最小化
-
17
Ctrl + P のメッセージ送信
-
18
VC++2010 画面なしのアプリケ...
-
19
Accessフォームからの外部アプ...
-
20
PHPでのsystem関数の処理ができ...
おすすめ情報