在初始化惰性实例时,将参数传递给构造函数
public class myClass { public myClass(String InstanceName) { Name = InstanceName; } public String Name { get; set; } } // Now using myClass lazily I have: Lazy myLazy; Console.WriteLine(myLazy.Value.Name);
我的问题是当我们使用惰性实例时如何将InstanceName
传递给myClass
构造函数?
试试这个:
Lazy myLazy = new Lazy (() => new myClass(InstanceName));
请记住,表达式是懒惰地计算的,因此如果在调用构造函数之前更改变量InstanceName
的值,它可能无法按预期执行。
Lazy有两种初始化方法。 第一个是使用T的默认ctor(无参数)
第二种是接受具有客户初始化逻辑的Func。 你应该使用这里提到的第二个重载
你不能, Lazy
需要一个无参数的构造函数。 您可以使用Lazy
构造函数,使用初始化类的方法。