在初始化惰性实例时,将参数传递给构造函数

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。 你应该使用这里提到的第二个重载

http://msdn.microsoft.com/en-us/library/dd642329.aspx

你不能, Lazy需要一个无参数的构造函数。 您可以使用Lazy(Func)构造函数,使用初始化类的方法。