.net 4.0的Lazy<T>方法,反射实现延迟加载。
2024-10-13 14:55:34
//自己山寨。
public class YaLazy<T>
{
private bool _isValueCreated = false;
public bool IsValueCreated
{
get
{
return _isValueCreated;
}
}
private T _value;
public T Value
{
get
{
if (this._value != null)
{
return (T)_value;
}
return CreateValue(); }
}
private T CreateValue()
{
_isValueCreated = true;
_value = (T)Activator.CreateInstance(typeof(T));
return _value;
}
}
使用方法和Lazy<T>类似:
YaLazy<Student> student2 = new YaLazy<Student>();
Console.WriteLine(student2);
student2.Value.ID = ;
student2.Value.Name = "New";
Console.WriteLine(student2);
----------------------
或者使用官方用法:
Lazy<Student> student = newLazy<Student>();
Console.WriteLine(student);
student.Value.ID = ;
student.Value.Name = "New";
Console.WriteLine(student);
延迟初始化Student:我们在Console.WriteLine(student); 一行设置断点查看,发现IsValueCreated是false ,Value值是null。
最新文章
- js定位
- ZOJ Problem Set - 1006 Do the Untwist
- SSM——(二):easyUI的CRUD
- matlab中的数据结构
- centos7安装数据库
- Inversion of Control Containers and the Dependency Injection pattern(转)
- GL_GL系列 - 预算管理分析(案例)
- Struts2基本包作用详解
- IntellijIDEA 使用技巧
- 用JvisualVM监视远程tomcat
- [置顶] LLVM每日谈之十五 LLVM自带的examples
- test maekdown 2
- [10] 过滤器 Filter
- Angular开发技巧
- 折腾Java设计模式之单例模式
- redis_字典_哈希hash
- Mybatis(二)总结
- sysctl命令
- [Hinton] Neural Networks for Machine Learning - Hopfield Nets and Boltzmann Machine
- php session (二): 同样的代码 ,不同域名访问 对session存储的影响.