博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#的Lazy与LazyInitializer
阅读量:5146 次
发布时间:2019-06-13

本文共 1410 字,大约阅读时间需要 4 分钟。

1     class Program 2     { 3         static void Main(string[] args) 4         { 5             //初始化 Lazy 类的新实例 6             //当延迟初始化发生时,将使用指定的初始化函数和初始化模式 7             // 参数: 8             //   valueFactory: 9             //     调用用于在需要时生成延迟初始化值的委托。10             //11             //   isThreadSafe:12             //     若要使此实例可同时由多个线程使用,则为 true;若要使此实例一次只能由一个线程使用,则为 false。13             Lazy
lazy = new Lazy
(() =>14 {15 return DateTime.Now.ToLongTimeString();16 }, true);17 18 //false(还未查询Value)19 Console.WriteLine(lazy.IsValueCreated);20 Console.WriteLine(lazy.Value);21 //true(已经查询Value)22 Console.WriteLine(lazy.IsValueCreated);23 Thread.Sleep(3000);24 //3秒后,Value值不变25 Console.WriteLine(lazy.Value);26 27 string str = null;28 //如果str未被初始化则使用"String1."初始化str29 LazyInitializer.EnsureInitialized(ref str, () => "String1.");30 //输出String1.31 Console.WriteLine(str);32 33 //str已经初始化过,不会再被初始化,因此不会变为"String2."34 LazyInitializer.EnsureInitialized(ref str, () => "String2.");35 //输出String1.36 Console.WriteLine(str);37 38 Console.ReadLine();39 }40 }

 

转载于:https://www.cnblogs.com/xuejietong/p/9016995.html

你可能感兴趣的文章
Opencv保存摄像头视频&&各种编码器下视频文件占用空间对比
查看>>
「图形学」直线扫描——Bresenham算法改进了中点Bresenham算法?
查看>>
jQuery 给div绑定单击事件
查看>>
Exceptionless 生产部署笔记
查看>>
有关快速幂取模
查看>>
转 ObjExporter Unity3d导出场景地图寻路
查看>>
Linux运维必备工具
查看>>
Ubuntu配置ssh及vnc
查看>>
Kinect学习(3)Kinect for Windows SDK资料下载
查看>>
Java入门——第七天
查看>>
HTML5 Audio时代的MIDI音乐文件播放
查看>>
明确工作职责的重要性
查看>>
ajax方法总结
查看>>
Spring注解使用和与配置文件的关系
查看>>
C语言进阶——const 和 volatile 分析09
查看>>
字符串的查找删除
查看>>
跨域请求
查看>>
NOI2018垫底记
查看>>
快速切题 poj 1002 487-3279 按规则处理 模拟 难度:0
查看>>
判断线段是否相交
查看>>