遅延初期化とは何ですか?ここで私は検索のGoogleの後に得たコードです。.NET 4で遅延初期化
class MessageClass
{
public string Message { get; set; }
public MessageClass(string message)
{
this.Message = message;
Console.WriteLine(" *** MessageClass constructed [{0}]", message);
}
}
Lazy<MessageClass> someInstance = new Lazy<MessageClass>(
() => new MessageClass("The message")
);
私はこのようにオブジェクトを作成する必要があります....実際には、このようにオブジェクトを作成する必要があるとき......答えを探しています。こっちMSDNドキュメント
MyPropertyプロパティが呼び出されると、...次の行がプライベートLazyを実行する場合 _myProperty = new Lazy 新しいMyClass()); どのようにプロパティが呼び出されます.....私はちょうど明示的にプロパティを呼び出す必要があるため、私は理解していません。 –
Mou
@ user728750私はあなたが何を求めているのかよくわからない。 '_myProperty'は単なるプライベートインスタンス変数です。また、それを含むクラスのコンストラクタで初期化することもできます(実際にはより良い方法です)。プロパティーの使用は多少選択的ですが、そうでなければ必要とされる '.Value'呼び出しを抽象化します。 – Andrew
この同じことは、ちょうど 'lazy val MyProperty = new MyClass()'でScalaで行うことができます。あまりにも悪いことに、.NET用のScalaコンパイラをリリースすることは決してありませんでした。 – sparebytes