以下に示すシングルトンクラスの場合、MyListを初期化する適切な方法は何ですか?フィールドMyList(オプション1)またはInstance.MyList(オプション2)を直接参照していますか?ここでベストプラクティスは何ですか?私の腸はインスタンスを通過すると言いますが、私は自分自身を二次的に推測しており、どこでも決定的な答えを見つけることはできません。シングルトンクラス内のプライベートシングルトンプロパティの参照
public class Foo
{
private readonly static Lazy<Foo> _instance =
new Lazy<Foo>(() => new Foo());
private List<string> MyList;
public static Foo Instance
{
get { return _instance.Value; }
}
private Foo()
{
MyList = new List<string> {"a","b","c"}; //Option 1
Instance.MyList = new List<string> {"a","b","c"}; //Option 2
}
}
2つのオプションに違いはないと思います。個人的に私は 'this.PropertyName'を使用したいのですが、VSは' this 'を削除するように私に迷惑をかけています。 –
もっと良い例に更新しましょう... – philorube
私はコンストラクタからインスタンスを呼び出さないでしょう。再び、私は違いがあるとは思わないが、ちょっと変わったようだ。 –