私が自分自身にコードを教えるために使用しているc#プロジェクトは、これまで、大量の関数と大量の「グローバル」静的変数を含む1つの巨大な形式でした。
ここを読んだり、いくつかのチュートリアルを行ったりした後、クラスとカプセル化を適切に使用するためにリファクタリングするプロセスを実行しようとしています。
私のクラス:
Program.cs
-基本的には初期化するだけForm1
です。Form1.cs
=すべてのUIを生成および変更します。他のクラスのパブリック関数を呼び出し、他のクラスがそれを更新するために呼び出すことができるいくつかのパブリック関数を持っています。UiStrings.cs
=すべてのエラーメッセージ、ダイアログ、指示などが含まれています。Options.cs
=いくつかの設定を追跡し、ファイルをインストールするためのパスを構築および更新し、UIの変更に基づいてコードを実行します。Updater.cs
=現在のバージョンを追跡し、アセットをダウンロードして適切な場所に配置し、オプションを調整します。Installer.cs
=現在のオプションに基づいて、すべてのアセットのインストール/アンインストール/バックアップを処理します。
最初に、で他の各クラスのインスタンスを作成しましたForm1
。これは、またはForm1
の関数とプロパティにアクセスできるようにするために機能しました。ただし、これらのクラスは、おそらくインスタンス化されていなかったために、互いの一部にアクセスできませんでした。UiStrings
Options
これが私を導いたのは、すべてのカスタムクラスUiStrings
をOptions
静的なものにすることです(それらのいずれかの複数のインスタンスは必要ないため)。これは、これらの各クラス内のすべての関数とプロパティも静的にする必要があることも意味します。
これは、自分が何をしているのかを実際に知っている人がやってくる合理的な解決策ですか?
これまでのテストではうまくいったようですが、クラスがまったくないという最初の試みも、それがどれほど間違っているかを知るまではうまくいきました。