悪いタイトルで申し訳ありませんが、私の心は混乱していて、それをどのように表現するのが最もよいか分かりません。ここに行く。クラスと関係のないフォームからクラスメソッドを呼び出す
私はFileHandler
というクラスを持っています。このクラスは、ファイルからデータを読み取り、それをListに格納します。また、リストを変更した後にファイルに書き戻すメソッドもあります。クラスは次のようになります。今
、そのクラスのreadDataFile
方法は、私のメインフォーム(あなたがプログラムを実行するときに最初にロードします1)で呼ばれています。そこから、BranchOverview
という別のフォームを開きます。そこから、EditProduct
と呼ばれる別のものを開くことができます。この編集フォームでは、商品の詳細を参考に編集し、myArgus
リストで変更することができます。私が問題を抱えているのは、クラスのreadDataFile
メソッドをEditProduct
から呼び出すことです。私はEditProduct
からmyArgus
を参照する方法がありませんので、それはパラメータとしてmyArgus
を受け入れるため
は、私がwriteDataFile
メソッドを呼び出すことはできません。
私はそれを行うと考えることができる唯一の方法は、それが私のメインフォームになるまで下のクラスを呼び出す各フォームクラスのメソッドを持つことですmyArgus
が渡すことができます。
これを達成するための優雅なやり方があるのですか、私はデザインの面で私のプログラム全体を完全に台無しにしましたか?もし私が持っていれば、これを達成するための正しい方向が指摘されていることを感謝します。
ありがとうございます!
静的クラスは、良いアイデアのように思えます。そうすれば、私は自分のコードで 'myArgus'を変更し、クラス間で渡したり、複雑にすることなく直接' writeDataFile() 'に渡すことができます。 –
オブジェクトの単一の共有インスタンスが必要な場合は、クラスの静的フィールドに安全に保存できます。 –
+1はメソッドシグネチャの 'ref'を削除することを推奨しますが、OPが複数のファイルを同じ' myArgs'インスタンスに追加している場合、 'List .AddRange()'を使って呼び出し側でもっと多くの作業が必要になります複数のデータファイルを同じリストにマージする –
psubsee2003