分享代码 .NET4.0实现惰性初始化

缪军 2012-01-01 04:18:38

private Lazy<Method> m_MethodSearch;
//private Lazy<Method> m_MethodSearch=new Lazy<Method>();//延迟调用字段类型的默认构造函数
public Method MethodSearch {
get { return m_MethodSearch.Value; }
set { m_MethodSearch = new Lazy<Method>(() => { return value; }); }
}

//在构造函数调用此方法
private void LazyInitialize() {
//传入匿名委托,可以调用任何自定义初始化处理
m_MethodSearch = new Lazy<Method>(() => { return new Method(); });
}



更多相关知识参见MSDN:
http://msdn.microsoft.com/zh-cn/library/dd997286.aspx
...全文
179 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
铜臂阿铁木 2012-01-03
  • 打赏
  • 举报
回复
顶起
阿非 2012-01-02
  • 打赏
  • 举报
回复
set { m_MethodSearch = new Lazy<Method>(() => { return value; });

m_MethodSearch = new Lazy<Method>(() => { return new Method(); });

可能在某些场景,还需要知道 m_MethodSearch 是否改变

是默认值 还是用 set 设置的默认值 要区分开
threenewbee 2012-01-02
  • 打赏
  • 举报
回复
lazyload

经常被搞得晕头转向,一会儿有人说什么懒汉模式,一会儿又是惰性加载。
灬重来灬 2012-01-02
  • 打赏
  • 举报
回复
啥叫惰性初始化。。。
来学习学习
ximenwuji 2012-01-02
  • 打赏
  • 举报
回复
啥叫惰性初始化。。。
来学习学习
williamsong997 2012-01-02
  • 打赏
  • 举报
回复
改来改去实在没啥必要。
ZHUKY 2012-01-02
  • 打赏
  • 举报
回复


///路过,顶一下,祝福楼主在新的一年里心想事成!合家安康
缪军 2012-01-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sandy945 的回复:]
[/Quote]
我把我之前编写的代码简化了,到没有注意到这个,原来的代码是这样的:

protected virtual void LazyInitialize() {
this.m_MethodSearch = new Lazy<Method>(
() => { return this.GetMethod(METHODLINE_SEARCH); });
//......
}

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧