- ベストアンサー
C#イベントで変数の受け渡しをする方法
- C#初心者の方へ、C#イベントで変数の受け渡しをする方法について教えます。
- Windowsのフォームアプリケーションにおいて、ボタンのクリックイベントにファイルを読み込む処理を登録する場合、イベントで定義した文字列の配列を使用します。
- しかし、この配列はイベントが終了すると存在しなくなってしまいます。C#にはグローバル変数という概念はないため、擬似的に作る必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
関連するQ&A
- C側で得た変数をC++の変数に流し込みたいです。
C側で得た変数をC++の変数に流し込みたいです。 現在、C++で 次のように、 入力ストリームから1行分の文字列を読み込んで、 読み込んだ文字列を「cmd」に流し込んだ際に、 cmdに代入された文字列が「get」であると、 他のファイルで定義されている「doget」という関数が 実行されるようになっています。 ----------- std::string cmd; std::getline(cin, cmd); void nod::execute(const std::string& cmd) { std::stringstream ss(cmd); std::string command; ss >> command; if (command == "get") { std::string key = "baseball" ; std::string val = stand.doget(key); } } ----------- これを、 以下のように、 (1) C言語側にある「a」という変数にある値を C++側のkeyに流しこんで、 (2) また、C側にあるsign配列内の文字列を C++側の「cmd」に代入したいと思っています。 C側 --------- /* C側の「a」配列の値を、上記C++側の「key」に代入したい */ char a[] = "www.gehohogetest.jp"; /* 上記C++側の「cmd」変数に、C側の配列で定義されている"get"という文字列を代入したい */ char sign[]= "get"; --------- その場合、C側とC+側をどう記述すれば、 希望を叶えることが出来るでしょうか。 アドバイスいただけるとありがたいです。 以上どうぞ宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- visual C++2008 Express 変数宣言等について
sea_clear_skyです。 質問させて頂きます。 <環境> WindowsXP SP3 VisualC++ 2008 Express 現在、VisualC++ 2008 Expressでプログラムの勉強をしています。 VisualC++ Expressでコンソールアプリケーションじゃなく、 Windowsフォームアプリケーションで、変数の宣言(配列)の仕方と message::showで、変数の値を表示させる方法がわかりません。 C/C++などの、コンソールアプリケーションの方法では エラーがでて、実行できなかったので、 Windowsフォームアプリケーション用の記入の仕方があるのでは ないかと思っています。 初心者なので、わからない状態です。 VC++ 2008 EXPRESS 変数宣言 VC++ 2008 EXPRESS 変数 VC++ 2008 EXPRESS データ型 message;;show vc++ VC++ 2008 リファレンス VC++ 2008 入門 等など、たくさんのキーワードでホームページを 検索しましたが、知りたいことが載っている ホームページを見つけることができませんでした。 参考HPや解決方法について、ご教授お願いします。 すいませんが、よろしくお願いします。
- ベストアンサー
- C・C++・C#
- C# Object型の受け渡し
C++のプログラマです。 以下のコードを通すとdataが配列として配置されます。 Object data; excute(out data); excuteメソッドの引数定義はVARIANT * です。 ここで質問です。 1)C++の概念ではこのような使い方は考えられないのですが、 C#ではあたりまえでしょうか? 2)この場合、配列数と配列の要素を取出す方法を教えてくれませんか? 以上、宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- C言語とfortranでのデータの受け渡しについて
はじめましてc_f_gaussと申します。 現在fortranで動的に配列を得るためにC言語を使用し 配列を確保しそのアドレスをfortranで定義してある 配列のアドレスと交換したいのですがどのようにしたら よいでしょうか? 今の段階ではC言語側でアドレスを交換してもfortran 側に戻ると元のアドレスに戻ってしまいます。 fortranとC言語でデータ受け渡すには何か必要な手続き があるのでしょうか?
- ベストアンサー
- C・C++・C#
- c# 配列変数の宣言について
c#の配列変数の宣言についてですが、 以下の2つの宣言は同じことなのでしょうか。 (1)int[] num = {1,2,3}; (2)int[] num = new int{1,2,3}; 本では(2)のような定義していますが何かルールのようなものがあるのでしょうか。 宜しくお願いします。
- ベストアンサー
- C・C++・C#
- 【C#】クラスのメンバ変数のアクセス修飾子の省略
初歩的な質問かもしれませんが、 C#にてクラスのメンバ変数を定義する際、 public int x; public int y; のように、変数一つずつにアクセス修飾子をつけなければいけないのでしょうか? 例えば、C++/CLIだと public: int x; int y; のように書くことで、個別に修飾子をつけなくても、 複数の変数に対してアクセスレベルを設定できたのですが。。 ご存知の方おられましたら、ご教示お願い致します。
- 締切済み
- その他(プログラミング・開発)
- 配列と他の変数のメモリ領域重複の問題について質問
dsPICで配列を使用する際、他の変数もその配列の存在するメモリ領域に配置されてしまいます。 プログラムにはC言語を用いています。環境は「MPLAB C30 v3.31」、「MPLAB LINK30 v3.31」「MPLAB v8.85」です。 状況としてはunsigned char型で要素数320の配列をグローバル宣言します。そしてmain関数やその他の関数内でローカル変数を宣言するとその変数が配列の中に存在することになってしまうというものです。色々試したところ、そのローカル変数をstaticで宣言するとそのような症状は出なくなりました。 この現象には、初期化をする関数内でカウンタとしてローカル変数を宣言し、for文で配列を0でクリアさせようとしたところ、MPLABSIMでデバッグすると永久ループしたことから気づきました。Watchを用いて確認したところ配列の中にそのカウンタ変数が配置されていたため最終的に自分自身を0でクリアしてしまうことで永久ループしてしまうことがわかりました。 なぜこうなるのかよくわかりません。この配列以外にはおおきな領域を必要とする変数は宣言していませんのでData memoryの容量的な問題ではないと思っています。staticで宣言すれば何とかなりますが、これでは無駄なメモリを消費してしまいます。また、絶対アドレス指定をする方法もありますが、「ignoring address attribute applied to automatic 変数名」というwarningがでて結局出来ませんでした。 。 このような現象を起こさせない様にするため,、確実にメモリを確保するためにはどうすればよいのでしょうか。 この問題のために先に進めず、大変困っております。どうかご教授ください。 もう一つ、変数の生存期間について質問なのですが、ある関数内で宣言したローカル変数をカウンタとして使い、指定の回数だけ他の関数を繰り返し実行する場合、他の関数に飛んだ時もそのローカル変数は確実に生存しているのでしょうか。重ねてお願いします。 不足がございましたら補足しますのでお教え下さい。
- ベストアンサー
- その他(プログラミング・開発)
- 本当にPublicな変数(配列で)
複数のフォームがあるVisualBasicのプログラムを作っているのですが、そのすべてのフォームからアクセス(値の変更も含める)できる配列の変数というのはないのでしょうか? Public 文を使ってみると、「定数、固定長文字列、配列、ユーザー定義型文字列、およびDeclareステートメントは、オブジェクトモジュールのパブリックメンバとしては使用できません。」 というエラーメッセージがでます。 解決法を教えてください。
- ベストアンサー
- Visual Basic
- エクセルのVBAでオブジェクトの配列変数は使えますか?
VBですとオブジェクトの配列変数というか、コピーしたときに自動的に配列になってしまいますが、エクセルのVBAの場合でオブジェクトの配列変数は使えますか? なにをしたいかというと、ボタンが多すぎて一つ一つにプログラム定義は面倒、そこで配列にしてまわすことにしたいのですが、エクセルで可能でしょうか。 どなたかお願いします。
- ベストアンサー
- Microsoft ASP
お礼
長年分からなかったことがお陰様で、解決しました。有り難う御座います。
補足
確認のためですが、HogeClassで public static string [] hoge;この時点では、hogeの大きさは不明ですよね。 Form1でもprivate string [] hogeが有ります。 HogeClass.hoge = hoge;とすれば、HogeClassでForm1のローカルのhoge すなわち、huga配列を使えると言うことですか?