プロの開発者に、大きなウィンドウ フォーム クラスをどのように管理しているかを尋ねたいと思います。partial
異なるファイル間でキーワードを使用して分割することをお勧めしますか? それは私がこれまで行っていたことですが、VSでそれらをダブルクリックすると、空白のwinformがポップアップする不要なデザイナーファイルが作成されます。
したがって、基本的には、グループ イベントと、関連する各コントロール グループのロジックを 1 つのファイルにまとめます。
プロの開発者に、大きなウィンドウ フォーム クラスをどのように管理しているかを尋ねたいと思います。partial
異なるファイル間でキーワードを使用して分割することをお勧めしますか? それは私がこれまで行っていたことですが、VSでそれらをダブルクリックすると、空白のwinformがポップアップする不要なデザイナーファイルが作成されます。
したがって、基本的には、グループ イベントと、関連する各コントロール グループのロジックを 1 つのファイルにまとめます。
私の答えは「ありません」です。1 つのクラス (この場合はフォーム) に多くのコードが必要な場合は、通常、クラスが多くのことを行っていることを意味し、結合を少なくする必要があります。これを実現する良い方法は、一種の MVC または MVP パターン フォームを使用してロジックを別の場所に配置し、UserControls を使用して、さまざまなコントロールでさまざまな機能を使用できるようにすることです (MVC を実装するかどうかに応じて、コントローラーまたはプレゼンターを使用)。またはMVP)。分割統治。
私は私を専門家とは考えていませんが、成長を止めないメインフォームで同様の問題が発生したことがあります。
解決策は単なる OOP であり、接続されていない再利用可能なクラスを作成し、それらは内部可視性を持つ同じ名前空間に配置できます。
たとえば、ComparisionFormのメイン コードから切り離すことができるように見えるComparisionForm.Menuがあります。
別の観点から「可読性」 .-部分クラスは便利ですが、異なるファイルにコードが分割されていても、ロジックが常に分割されているとは限らないことを考慮してください。 .
私のクラスを論理的に分割することが解決策でした。彼らが「分割して征服する」と言うのを知っていますか?
フォームのコードを分離する最良の方法は、UserControl を使用することだと思います。
私の場合、大きなクラスがあるときは、部分クラスの代わりにリージョンを使用します。
プロではありませんが、私の 2 セントは次のとおりです。大人数のクラスを持たないでください。ほとんどのコードを他のクラスに抽出します。
また、ほとんどのメソッドを作成できるためprivate
、Intellisense の「ノイズ」が減少します。