Khởi tạo lười biếng là gì. đây là mã tôi nhận được sau khi tìm kiếm google.Khởi tạo lười biếng trong .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")
);
tại sao tôi nên tạo đối tượng theo cách này .... khi thực sự chúng ta cần tạo đối tượng theo cách này ...... tìm câu trả lời.
khi MyProperty thuộc tính sẽ được gọi ... nếu dòng sau thực hiện riêng tư Lazy _myProperty = new Lazy (() => new MyClass()); làm thế nào tài sản sẽ được gọi là ..... tôi chỉ không hiểu vì chúng ta cần phải gọi tài sản luôn luôn rõ ràng. –
Mou
@ user728750 Tôi không hoàn toàn chắc chắn rằng tôi hiểu những gì bạn đang yêu cầu. '_myProperty' chỉ là một biến cá thể riêng. Bạn cũng có thể khởi tạo nó trong hàm tạo của lớp có chứa (thực tế có thể là thực hành tốt hơn). Việc sử dụng thuộc tính có phần tùy chọn, nhưng nó tóm tắt lệnh gọi '.Value' nếu không cần thiết. – Andrew
Hài hước rằng điều tương tự này có thể được thực hiện trong Scala chỉ với 'lazy val MyProperty = new MyClass()'. Quá xấu họ không bao giờ có xung quanh để phát hành một trình biên dịch Scala cho. Net. – sparebytes