C#フォームクラスと他クラスの連携について

このQ&Aのポイント
  • C#を勉強し始めたばかりの者です。オブジェクト指向言語が初めてなので、オブジェクト指向的考え方が出来てないゆえの質問です。
  • フォームクラスと他のクラスの連携方法がわかりません。具体的に言いますと、フォームクラスで別のAというクラスを宣言し、そのクラスのB()メソッドを実行したときに中で発生した例外メッセージをフォームのコントロールで表示したい、という場合、どうすればよいのでしょうか?
  • 例外メッセージをフォームクラスで処理する方法についてのアドバイスをお願いします。
回答を見る
  • ベストアンサー

【C#】フォームクラスと他クラスとの連携について

C#を勉強し始めたばかりの者です。 オブジェクト指向言語が初めてなので、オブジェクト指向的考え方が出来てないゆえの質問だとは思うのですが・・・。 質問内容ですが、フォームクラスと他のクラスとの連携方法がわかりません。 具体的に言いますと、フォームクラスで別のAというクラスを宣言し、そのクラスのB()メソッドを実行したときに中で発生した例外メッセージをフォームのコントロールで表示したい、という場合、どうすればよいのでしょうか? Doメソッドで例外メッセージをstringとして返し、それをフォームクラスの方で処理するしかないのでしょうか? お知恵を貸してください。よろしくお願いします。

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

  • ベストアンサー
  • iyomante
  • ベストアンサー率60% (14/23)
回答No.1

1.Aクラスメソッド内ではtry-catchを書かず、全てフォームクラスで処理する。 2.Aクラスメソッド内のtry-catchで改めて例外をthrowして、フォームクラスで処理する。 3.Aクラスメソッド内のtry-catchで例外を受けた後、戻り値としてエラーメッセージを返却する。 のどれかだと思います。 クラス内で処理したい例外処理なら3でよいのでは。

関連するQ&A

  • Stringクラスは他のクラスとどう違う?

    Objectクラスを抽象クラスとするサブクラスに Stringというクラスがあります。 ストリングオブジェクトの宣言は下記のようにします。 String[] url = new String[2]; ストリングクラスは以下のように宣言時に初期化が可能です。 String[] url = {"honyahonya.com","0"}; また、以下のような指定も出来ます。 this.method( new String[]{"honyahonya.com","0"} ); そこで質問ですが Stringとはなぜこのような扱い方ができるのですか? 他のクラスとは、例外的に扱いが違うだけなのですか? 初期化で指定した文字列はどのように解釈されて、どういう 扱いがされているのでしょうか? 普段はなんとも思わず使っていますが なんとなく気になりませんか・・・。

    • ベストアンサー
    • Java
  • メソッド宣言内でクラス名が書かれる理由

    public static void main(String arg[]){ 上記は、メソッド宣言ですが、このメソッド宣言の中に書かれているStringは、「標準クラスの1つ」だと聞いています。(標準クラスの意味さえ僕はわかりませんが、、参考書に書かれてあるのを見てもチンプンカンプン) 何故Stringは標準クラスの1つなのに、メソッド宣言の中に書かれているんですか? 質問1:私の仮説では、メソッドがどこのクラスに属するかを明示するためにメソッド宣言内にStringが書かれていると考えてます。それでよろしいですか? 質問2:メソッド宣言とは本質的にどういうことですか?プログラミング初心者の僕でもわかるように解説お願いします。

    • ベストアンサー
    • Java
  • C++.NETのWindowsフォームで自作クラスを制御したい

    C++.NETでWindowsフォームアプリを作っています。 状況をわかりやすくするために、例えを使って説明すると ・Form.h起動時に、自作の「おにぎり」クラスのオブジェクト(obj)を1つ作成する。「おにぎり」クラスには「塩をふる」と「のりをまく」の2つの関数がある。 ・Form.h上には ボタン1、ボタン2がある。 ・ボタン1をクリックしたときのイベントとして、objの「塩をふる」、ボタン2をクリックしたときのイベントとして、objの「のりをまく」を実行するようにしたい いろいろ調べた結果、http://www.atmarkit.co.jp/fdotnet/special/vcppinvista01/vcppinvista01_03.htmlに行き当たり、自動生成されたWindowsフォームのソース(?)と、自作のクラスは単純に混在できない、ということがわかりました。 そこで質問なのですが、 ・このURLに書かれているとおりラッパークラスというものを作る必要があるのでしょうか? ・別の情報では、クラスを宣言するときにポインタとして宣言(おにぎり* obj)し、コンパイラの指示通り、.から->へ変えるだけでよい、とありましたがそれは解釈違いでしょうか? 現状では後者のように設定すると正常にコンパイルできるのですが、イベント発生時の「塩をふる」という関数内部で例外が発生します。(イベントごとにオブジェクトを作成する方法だと例外が発生しないので、関数のバグではないはずです) まとめると、フォーム内のすべてのイベントが1つのオブジェクトに対して動作する、というケースを想定しているわけです。 何かアドバイスなどいただけないでしょうか? よろしくお願いします。

  • Stringクラスのlengthメソッドについて

    こんにちは、Stringクラスのlengthメソッドについて質問させてください。 今まで配列のlengthは、宣言時に長さが決定するからメソッドではなく、finalフィールドで十分。 ArrayListだとかは長さが変わるからメソッドという意識を持っていました。 (カプセル化の概念とも関わりますが) 先日その話しをしていたら、「でも文字列(Stringオブジェクト)の長さも不変だよね。」と言われました。 確かに文字列の長さは不変なのに、長さの取得にはメソッドを使っています。 言語仕様として一貫性を持たせるなら、配列もlengthメソッドにするか、文字列をlengthフィールドにしたほうが綺麗だと思うんです。 Stringクラスのソースコードを見ていたら、文字列の長さは内部的に private int count; と宣言されていました。 そして、lengthメソッドは return count; しているだけでした。 ただ、このcountフィールドに値を代入しているのはコンストラクタ内だけだったので、 public final int length; とすれば、良かったのでは?と思いました。 この考えについて、 それは間違っている、とか歴史的な背景などご存知でしたらご教授ください。 よろしくお願致します。

  • JAVAのクラスの考え方は・・?

    JAVAの勉強をしていている学生です。 常々思っていたのですが、クラスの考え方がしっくりきてませんヽ(~-~ よく参考書などで書かれていることで 「クラスは設計図のようなもの、オブジェクトはそこから作成した実体」 「鋳型がクラスでどんどん作れるのがインスタンス」 といった話が疑問でならないのです。 というのも・・クラスの設計って、自分自身をフィールドに宣言したりできますよね。。 でそこから生成して、また自分自身のフィールドに生成して・・とか。 インターフェースを実装したクラスで、、、内部クラスを持ったクラスで、、、ジェネリッククラス、、。 となってくると、最初の考え方では、論理的に無理?私の脳内では変換しきれないです(´;ω;) 多分前提となる考え方が間違っていたり、私の想像力が乏しいだけだと思います。 どなたか、「クラスってこう考えればオブジェクト指向が見えてくる」と表現している本やサイトなどご存じないでしょうか。 一朝一夕で理解しようとは思っていませんので、きちんと参考にして理解しようと頑張ります! 「私的には・・」や「あなたが勘違いしている箇所は・・」といったご意見もぜひお聞きしたいです! クラスかオブジェクト指向かどっちかというより、クラスありきでJAVAのオブジェクト指向が本当に理解できると考えています。参考書やWEBを探してみた限りではやっぱり理解できないです(´;ω;) ちなみにC言語を中学生で始め、プログラミングに触れました。

  • PHPのクラスについて

    PHPでクラスを多用すると処理が重くなるといわれたのですが、実際のところどうなのでしょうか。 他のオブジェクト指向言語のようにクラスを作ってしまって問題ないのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Cに慣れてしまった人、どのようにJAVAを克服しましたか?

    JAVAについて質問です。 私はC言語をこの1年間勉強してきました。 そしてC言語のコーディングの仕方に慣れきってしまったせいか、どうしてもJAVAのオブジェクト指向 というものが理解できません。 コーディングも上手くいきません。 クラスやメソッドやインスタンスがどうとかコンストラクタが・・・などの横文字が全然意味が分かりません。 C言語で言うとどれがどこに当たるのか!? とかいう風に置き換えて考えようとしても上手く行きません。 こういう、横文字が理解できて、オブジェクト指向の考え方に慣れる為にはどのようにしたらいいでしょうか? また、C言語からプログラミングに入って、後からJAVAを勉強する場合、どのような点に気をつければ良いでしょうか? また、JAVAの克服法を教えてください。

    • ベストアンサー
    • Java
  • [ASP.NET]DropDownListのDB連携のやり方。

    こんにちわ。 VS.NET2003で、ASP.NET+C#で開発しております。 ちょっと悩んでしまったので、質問させてください。 とある入力フォームを作成しようと思っているのですが、そのフォームにDBと連携したDropDownListを複数配置させたいと考えております。 で、とりあえず1つ連携させてみたのですが、これを複数やるのってなんだかなぁ。っと思ってしまいました。 連携の方法としては、 (1)sqlDataAdapterを作成、クエリを作る。 (2)sqlDataAdapterからdataSetオブジェクトを作成する。 (3)Page_LoadメソッドにてsqlDataAdapter.Fill(dataSetオブジェクト)を実行し、DataBindする なんですが、これDropDownListの数だけsqlDataAdapter作らなくちゃいけないんですかねぇ?途中で端折れるところや、使いまわし出来る部分がありましたら、どなたか教えてください。 よろしくお願いします。

  • ACCESS フォームやコントロールはクラス?

    オブジェクト志向を勉強し始めた者です。 今まで特に意識していなかったのですが、 ACCESSのフォームやテキストボックス等のコントロールは、 クラスなんじゃないか、と思ったんですが これは正しいでしょうか? レコードセットをopenする時に使用する宣言の Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset でいうと ADODBがクラスなのでしょうか? ADODB.Connection、 ADODB.Recordsetがクラスなのでしょうか? ご教授の程、よろしくお願いします。

  • c#のToString()メソッド

    http://msdn.microsoft.com/ja-jp/library/ms173154(v=vs.90).aspx のページによると C# では、すべてのオブジェクトが ToString メソッドを継承します。このメソッドは、該当するオブジェクトの文字列形式を返します。たとえば、int 型の変数はすべて ToString メソッドを持ち、次のようにその変数の内容を文字列として返すことができます ↑と書いてあるのですが、C言語しか知らない自分にとってint型の変数が関数、メソッドを持つ、 という概念が理解できません。これはオブジェクト指向の話なのでしょうか?クラスを理解すると わかるようになりますか? どなたかよろしくお願いします。

専門家に質問してみよう