这是延迟初始化的 Field 的语法。
public class MyClass
{
string _cat;
public MyClass(string Category)
{
_cat=Category;
}
MyExpensive _expensive;
public MyExpensive Expensive
{
get
{
LazyInitializer.EnsureInitialized(ref _expensive, () = > new MyExpensive ());
return _expensive;
}
}
}
但是如果我需要new MyExpensive
使用运行时 ctor params创建呢?(根据流程逻辑)
我不想创建一个标志字段,然后做很多IF's
我的意思是,有时我需要跑步new MyExpensive ("picture")
,有时new MyExpensive ("flowers")
我怎样才能做到这一点 ?
(不包括为每个类别创建一个惰性字段 - )