ほとんどすべてのクラスで、プロパティと内部クラス変数が混在しています。私は常に、「外部で必要な場合はプロパティ、そうでない場合はクラス変数」というルールに従って、どちらかを選択してきました。しかし、これを頻繁に再考させる他の多くの問題があります。
ある時点で、クラスの外部から内部変数を使用したいので、それをプロパティにリファクタリングする必要があります.とにかくほとんどのクラスは内部クラスであるため、API で公開されていないため、内部変数がクラスの外部からアクセスできるかどうかは問題ではありません。
しかし、C# では定義内のプロパティなどをインスタンス化できないため
List<string>
、これらのプロパティは可能なすべてのコンストラクターで初期化する必要があります。一箇所C# コードは、コンストラクター/メソッド パラメーターがキャメル ケースであり、
templateIdCode
それがローカル変数、メソッド パラメーター、または内部クラス変数 (たとえば、TemplateIdCode = templateIdCode
これがクラス プロパティに割り当てられているパラメーターであることがわかると、より簡単になります。これは、常に内部クラスのプロパティのみを使用するための引数です。
例えば:
public class TextFile
{
private string templateIdCode;
private string absoluteTemplatePathAndFileName;
private string absoluteOutputDirectory;
private List<string> listItems = new List<string>();
public string Content { get; set; }
public List<string> ReportItems { get; set; }
public TextFile(string templateIdCode)
{
this.templateIdCode = templateIdCode;
ReportItems = new List<string>();
Initialize();
}
...
内部 (非 API) クラスを作成する場合、内部クラス変数またはプロパティを作成する必要があるかどうかを決定する際の戦略は何ですか?