これを書く方法はありますか?私は明示的にフィールド_D
を宣言する必要はありませんか?c#クラス宣言のプロパティ
- クラスが実装されているとき、どうすれば
= new List<T>()
を回避できますか?
私が持っているもの:私が欲しいもの
class c {
private List<T> _D = new List<T>();
public List<T> D { get { return _D; } set { _D = value; } }
}
:
class c {
public List<T> D { get; set; }
}
それが財産List<T>
を割り当てるには、コンストラクタを宣言するほうがよいのではないでしょうか?次のように:
class c {
c() { D = new List<t>(); }
public List<t> D { get; set; }
}
プロパティを実装して初期値を割り当てるとき、今日のベストプラクティスは何ですか?
3つはすべて技術的に正しいです。私が引き継ぐ少しのコードで最初のものを見つけました。私はすべてのプロパティのバッキングフィールドを宣言する元のコードの背後にある目的を見つけることができません。私は背中のフィールドを宣言することはベストプラクティスではないと思ったのですが、ここでは起こっていないクラスのメソッドのどこかでプライベートフィールドを実際に使用する場合を除いて、C#v3 ..
最初のList<>
をプロパティに「クラスのどこかのプロパティを使用する」と指定して見てください。 それを「無意味なもの、それは私の3番目の例のようにしてください」と見ることができます。
これらは最近、一般的にベストプラクティスと見なされていますか?
あなたの質問は私を混乱させます。あなたが望むのは、コンストラクタの初期値を宣言するだけで、まさに正しいものです。だから**正確に**あなたは何を求めているのですか? –
'publicリスト D {get;セット; } = new List (); '? –
crashmstr
3つのすべてが技術的に正しいです。私が引き継ぐ少しのコードで最初のものを見つけました。私はすべてのプロパティを宣言するオリジナルの背後にある目的を見つけることはありません。実際にクラスのメソッドのどこかでプライベートプロパティを使用しようとしている場合を除いて、実際にプロパティが宣言されていると思っていました。最初のListをプロパティに 'クラスのどこかでプロパティを使う'と指定してみることができます。または、それを無意味なものとして見ることができます。代わりに、私の3番目の例が好きです。最近は一般的にベストプラクティスとみなされていますか?あなたは、用語「プロパティ」を悪用保つ – user5903880