• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#のインスタンスを参照渡ししたい)

C#でのインスタンスの参照渡しに関する問題

このQ&Aのポイント
  • C#のプログラムで、クラスAのインスタンスを参照渡しして使いたい場合、メソッドBの引数にインスタンスを渡す方法があります。
  • ただし、起動時に作られたクラスAのインスタンスとは別のインスタンスが生成されることに注意が必要です。
  • クラスBのDLL内でクラスAのメソッドを呼び出すためには、メソッドBの引数にインスタンスを渡す必要があります。

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

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

>ボタン2でも同じように表示されているウェブブラウザにGoogleを表示させたいです。どのような方法があるでしょうか? 「void Form1::ウェブブラウザ(string URL)」を使ってという事なら public void DLL関数2(Form1 form1) { form1.ウェブブラウザ("http://google.com"); } にして、 item1.DLL関数2(this); と、とすればいいだけだけど(interfaceは適切に変更してるとしてください)

satisfied999
質問者

お礼

おかげでできました。ありがとうございます。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

何か意味不明なC#もどき言語が書かれているので、こちらとしては説明が面倒なんですけど・・・ >これは、a.メソッドAは、その上のA a = new A();でつくられた新しいインスタンスのなかで処理がされていて起動時につくられたクラスAのインスタンスとは別のものになっているからだと思うのですが、まちがいないでしょうか? >メソッドA(){ >  ウェブブラウザA.Navigate(URL); > ここで書かれている「ウェブブラウザA」というのがクラスAのインスタンス変数なら、それであっています。 >この処理を成功させたい場合、起動時に作られたクラスAのインスタンスをメソッドBの引数に参照渡しですれば、 クラスBのインスタンスメソッドBを呼び出すとき、起動時に作成したクラスAのインスタンスのウェブブラウザA(に入っているもの)を渡してるんじゃないんですか? そのウェブブラウザA(には入っているもの)はWebBrowserクラスのインスタンスではないの? 変数という入れ物とインスタンスを区別できてなさそうな。

satisfied999
質問者

補足

返信遅くなってしまって申し訳ありません。 私の説明不足のようなので問題の部分のプログラムだけを抜き出したののを作ってみました。 http://1drv.ms/1krjNRG 省略ているためボタンが直接Form1にありますが、MDIの子フォームに表示させる予定です。 ボタン2でも同じように表示されているウェブブラウザにGoogleを表示させたいです。どのような方法があるでしょうか?

  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

以下の点、補足説明をお願いします。 「クラスAの方で宣言しているa.メソッドAは失敗します」とありますが、それはコンパイルエラーでしょうか、それとも実行時にエラー/例外が発生するのでしょうか。 また、失敗と判断するに至ったメッセージの類があれば、それをそのままの文で(できればメッセージをコピペで)呈示願います。

satisfied999
質問者

補足

失敗というか、変化が起こりません。実行はされているのですがモニタに表示されているウェブブラウザAには何の変化も起こらないという感じです。

関連するQ&A

専門家に質問してみよう