¿Qué es la inicialización lenta? aquí está el código que obtuve después de la búsqueda de google.Inicialización lenta en .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")
);
por qué debería crear un objeto de esta manera ... cuando en realidad necesitamos crear un objeto de esta manera ...... buscando una respuesta.
cuando MyProperty la propiedad se llama ... si la siguiente línea ejecutar privada Lazy _myProperty = new Lazy (() => nueva MyClass()); cómo se llamará la propiedad ..... simplemente no entiendo porque tenemos que llamar a la propiedad siempre explícitamente. –
Mou
@ user728750 No estoy muy seguro de entender lo que estás preguntando. '_myProperty' es solo una variable de instancia privada. También podría inicializarlo en el constructor de la clase contenedora (lo que en realidad podría ser una mejor práctica). El uso de la propiedad es algo opcional, pero abstrae la llamada '.Value' que de otro modo sería necesaria. – Andrew
Es curioso que lo mismo se puede lograr en Scala con solo 'lazy val MyProperty = new MyClass()'. Lástima que nunca consiguieron publicar un compilador de Scala para .Net. – sparebytes