• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#で共有変数の定義をするには)

C#で共有変数の定義をするには

このQ&Aのポイント
  • C#で共有変数の定義方法を教えてください。
  • 起動パラメータで指定した文字列をプログラム中で参照する方法を知りたいです。
  • Windows XPとVisual Studio 2008でC#のWindowsアプリケーションを作成しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答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;   } } メインクラスのメンバーとしてスコープが有効な場所に記述します

tatsu99
質問者

お礼

ありがとうございました。 うまくいきました。Form1表示ごの他の任意の箇所から、strArgの参照ができることも、確認できました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答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メソッドを実装しましょう

tatsu99
質問者

補足

回答ありがとうございます。 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

  • C#でGUI・CUIの判断する仕方を教えて下さい

    アプリケーションを開発しています 開発環境 Microsoft Visual Studio 2005 net framework 2.0 C# GUI(Windows アプリケーション)とCUI(コンソールアプリケーション)の アプリケーション開発しています 単体のアプリケーションは動作しています 2つのアプリケーションを1つの(EXE)で実行できるアプリケーションを 開発したいです 起動仕方は EXE にパラメータを付けたらCUIで起動して パラメータなしならばGUIで起動したいです プログラムで起動の仕方を判断できるのですか? できるなら参考資料(サンプルコート・ホームページなど)を教えて下さい 宜しくお願いします。

  • C++からC#へ

     Visual Studio C# .NETのASPWebアプリケーションを使って、Borland C++ Builder6 で作成されたプログラムをWebアプリケーションに作りなおす事になりました。  期日がせまっているため、できれば簡単にできる方法を早急にしりたいです。 簡単じゃなくてもいいので、やり方や参考になるサイト何でもいいので教えて下さい。

  • Visual C++にて「再定義されています」と…

    VisualC++2010にて、OpenCVを導入しようといろいろ弄っていたら以下のような文章が出るようになりました。 1>------ ビルド開始: プロジェクト: imiwakaran, 構成: Debug Win32 ------ 1> stdafx.cpp 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\codeanalysis\sourceannotations.h(27): error C2371: 'size_t' : 再定義されています。異なる基本型です。 1> c:\users\ooka\documents\visual studio 2010\projects\imiwakaran\imiwakaran\predefined c++ types (compiler internal)(19) : 'size_t' の宣言を確認してください。 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== 再定義されているとのことなので書き換えようとしましたが、書き換えが不可能なファイルでした。 これのせいでHellow Worldすら実行できなくなりました。 Visual系のソフトをすべてアンインストールして、再インストールしましたが現状のままでした。 どなたか詳しい方、どうかお助けください。

  • Visual C++ の関数定義の参照方法

    Visual Studio 2008を利用しているのですが、 Visual C++のプログラムの中で、関数の上にマウスポインターを置いた状態で、MSDNライブラリを 参照する方法がわかりません。 Shift+F○○キーではなかったでしょうか。 ご回答よろしくお願いします。

  • >NETの起動方法

    Visual Studio 2008 ExpressのC#を使ってプログラムを作成した。 テスト、デバッグは済んだ。 このプログラムをVisual Studioを離れて(VSの管理下でない状態で)起動したい。 どうすればいいのでしょうか。 1.普通のEXEプログラムはイクスプローラでダブルクリックすれば動く。 2.JAVAのプログラムは仮想マシンを起動して、仮想マシンのパラメタとしてプログラム名を渡す。   JAVA プログラム名 3.C#の場合、どうすれば動くのか。.NETを起動して、そのパラメタとしてプログラム名を渡すんだと思いますが、.NETの起動方法がわかりません。 わかっている方がおりましたら、教えて下さい。

  • RS-232C接続のための VS 2008 C++のプログラム

    RS-232C接続のための VS 2008 C++のプログラム パソコンとRS-232Cで接続することで制御できるパトライト(PHE-3FB)を渡され、今週中に動かしたいのですが、私はプログラミング経験が非常に浅くどうしても、動かすことができません。加えて、実装の環境が「Visual Studio 2008 C++」のみに限られており、大変困っています。 こんな、初心者の私でもRS-232Cの通信プログラムが書けるようなサイトはないでしょうか。 Windows Visual studio 2008 C++ で書かれたサンプルプログラムのようなものがあれば非常に助かります。。。 どなたか、助けてください・・ 追記 MSCOMMコントロールはWindows Visualstudeo 2008 C++にはないのでしょうか・・

  • Visual Studio C++のデータ入力

    C言語を一から勉強しています。 Visual Studio C++を使ってプログラムを入力していて、デバッグの際にscanfでテストデータを入れたいのですが、入力の方法が分かりません。 どうやったらよいのでしょうか。 Visual Studio 2019で、C++のコンソールアプリケーションというものを使っています。

  • なぜマクロ「_WIN64」が未定義になるの?(Visual C++)

    下記環境で、32bitアプリケーションの64bit化をしようとしました。   OS    :Windows XP Professional x64 Edition   開発環境:Visual Studio 2008 Professional Edition   言語   :Visual C/C++ その際のビルドは、構成マネージャのアクティブソリューションプラットフォームを「x64」に設定してから行いました。 ところが、64bitアプリケーションなら定義されるはずの「_WIN64」というマクロが未定義になってしまいます。 なぜなのか、教えて欲しいです。 ちなみに、マクロが未定義かどうかは、   #if defined(_WIN64)     #define test   #endif の2行目がビルド後、灰色表示になるかどうかで確かめました。 その結果、灰色になりました。 さらに、補足ですが 64bitアプリケーションになっているかを確かめるため、 sizeof(int*)の値を確認したところ、 その値は「8」でした。 参考:   [MSDN Visual C++ デベロッパー センター]    http://msdn.microsoft.com/ja-jp/library/b0084kay.aspx    http://msdn.microsoft.com/ja-jp/library/9yb4317s(VS.80).aspx

  • ファイルの排他制御について

    こんにちは。 Visual Studio 2005 のC#を使って、ファイルを加工するアプリを書いていますが、 ファイルの排他制御についてよく分らなくて困っています。 プログラムの構成としては、以下の通りです。 1:プログラムAがファイルXYZを作成します。 2:プログラムAとは別々に動く、プログラムBが、このファイルXYZを読み込んで データベースに書込む処理をします。 この処理で、もしもプログラムAがファイルXYZの作成中の時に、 プログラムBが同じタイミングでファイルXYZを開いてしまった場合、 ファイルが中途半端な状態で開いてしまうのではないかと思ってます。 こういう状態を回避するためにはどういう処理にすればよいのでしょうか? よろしくお願いいたします。

  • スタートの全てのプログラムでVBとc++が少し違う

    ・Microsoft Visual Basic 2008 Express Edition ・Microsoft Visual C++ 2008 Express Edition の2つをインストールしました。 しかしスタートの全てのプログラムを見ると C++ の方はフォルダにはいっていて、 VBの方はそのまま(裸のまま)プログラム一覧に表示されています。 Visual C++ の方はフォルダの中身は ・Microsoft Visual C++ 2008 Express Editionのアプリケーションと ・Visual Studio Toolsフォルダです。 Visual Studio Toolsの中には Visual Studio 2008 コマンド プロンプト が入っています。 これは標準の配置ですか? もしかしたら私が知らぬ間にいじったのか気になります。 OSはvistaです。 よろしくお願いします。