延迟加载
延迟加载,亦称延迟实例化,延迟初始化等,主要表达的思想是,把对象的创建将会延迟到使用时创建,而不是在对象实例化时创建对象,即用时才加载。这种方式有助于提高于应用程序的性能,避免浪费计算,节省内存的使用等。针对于这种做法,似乎称之为即用即创建更为合适些。
例如:一个文章实体类Article,一个文章分类实体类Category,通过Article获取相对应的Category
方法1:在获取Article实体类时,将相对应的Category实体类塞给Article
方法2:要调用Category时,通过Article从数据库中获取
方法3:在Category属性的get访问器中实现读取数据库获取文章分类的代码,这样如果没有使用到Category属性的 时候是不会调用到这些代码的,也就不会去访问数据库拿东西了
class Program { static void Main(string[] args) { ///这行代码表明:要创建一个延迟加载的字符串对象s //////原型为Lazy<T> 对象名=new Lazy<T>(Fun<T>) ///采用泛型委托进行构造,实例化此委托时要求必须是返回值T类型的方法 //////如在本例中,T为string,则TestLazy.GetString方法的返回值必须也是string类型 Lazy<string> s = new Lazy<string>(TestLazy.GetString); Console.WriteLine(s.IsValueCreated);//返回False Console.WriteLine(s.Value); //返回S的当前值 Console.WriteLine(s.IsValueCreated);//返回True } } public class TestLazy { public static string GetString() { return DateTime.Now.ToLongTimeString(); } }
http://kb.cnblogs.com/page/90674/
http://kb.cnblogs.com/page/90677/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)