当前位置: 首页 > news >正文

模仿网站侵权吗wordpress百科网vip教程

模仿网站侵权吗,wordpress百科网vip教程,互联网公司排名 2022,银行官网登录入口延迟初始化 是一种将对象的创建延迟到第一次需要用时的技术#xff0c;换句话说#xff0c;对象的初始化是发生在真正需要的时候才执行#xff0c;值得注意的是#xff0c;术语 延迟初始化 和 延迟实例化 的意思是相同的——可以互换使用#xff0c;通过使用 延迟初始化 技… 延迟初始化 是一种将对象的创建延迟到第一次需要用时的技术换句话说对象的初始化是发生在真正需要的时候才执行值得注意的是术语 延迟初始化 和 延迟实例化 的意思是相同的——可以互换使用通过使用 延迟初始化 技术可以避免应用程序不必要的计算和内存消耗这篇文章我们将会讨论如何在 C# 中使用 延迟初始化。有些朋友听完这些可能会懵逼接下来用一个简单的例子来了解下 延迟加载 的场景考虑下面两个类 Customer 和 Order Customer 类包含了一个 Orders 属性一个人肯定会有很多的订单也就意味着它可能包含了很多的数据甚至还需要连接数据库去获取 Orders 记录在这种场景下没必要给 customer 集合中的所有人都带上完整的 orders这个初始化开销是巨大的优化点就是不加载 Orders直到某些 customer 真的需要 Orders 时才按需灌入。使用 LazyT 你可以自己写一段逻辑来实现 延迟初始化在 .Net Framework 4.0 之后就没必要了 因为在 System 命名空间下已经提供了 LazyT而且还是 线程安全 的可以使用这个类来延迟 资源密集型 的对象按需创建。当使用 LazyT 的时候这里的 T 就是你要延迟的集合那如何做到按需加载呢调用 LazyT.Value 即可下面的代码片段展示了如何使用 LazyT。 LazyIEnumerableOrder orders  new LazyIEnumerableOrder(); IEnumerableOrder result  lazyOrders.Value;现在考虑下面的两个类: Author 和 Blog一个作者可以写很多文章所以这两个类之间是 一对多 的关系下面的代码片段展示了这种关系。public class Author{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public string Address { get; set; }public ListBlog Blogs { get; set; }}public class Blog{public int Id { get; set; }public string Title { get; set; }public DateTime PublicationDate { get; set; }}值得注意的是关系型数据库中的 一对多 关系映射到对象模型就是 Author 类中增加一个 List Blogs 属性使用这个属性Author 就可以维持一个或者多个 Blog 实例对象对吧。现在假定在 用户界面 上仅需展示 Author 的基础信息比如说(firstnamelastnameaddress在这种场景下给 Author 对象加载 Blogs 集合是毫无意义的当真的需要加载 Blogs 时执行 Blogs.Value 即可立即执行下面展示了 LazyBlog Blogs 的用法。public class Author{public int Id { get; set; }public string FirstName { get; set; }public string LastName { get; set; }public string Address { get; set; }public LazyIListBlog Blogs  new LazyIListBlog(()  GetBlogDetailsForAuthor(this.Id));private IListBlog GetBlogDetailsForAuthor(int Id){//Write code here to retrieve all blog details for an author.}}使用通用的 Lazy 接下来让我们看看如何使用泛型的 Lazy 实现单例模式下面的 StateManager 是线程安全的同时为了演示 延迟初始化我使用了 静态构造函数 来确保 C# 编译器不会将它标记为 beforefieldinit。public sealed class StateManager{private StateManager(){}public static StateManager Instance{get{return Nested.obj;}}private class Nested{static Nested(){}internal static readonly StateManager obj  new StateManager();}}下面我用 LazyT 来包装 StateManager你会发现使用 LazyT 来做延迟初始化真的是太简单了。。。public class StateManager{private static readonly LazyStateManager obj  new LazyStateManager(()  new StateManager());private StateManager() { }public static StateManager Instance{get{return obj.Value;}}}可以瞄一下上面代码的 Instance 属性它被做成只读属性了同时也要注意 obj.Value 也是一个只读属性。public class LazyT{public T Value{get{if (_state ! null){return CreateValue();}return _value;}}}延迟初始化 是一个很不错的性能优化技术它允许你将那些 资源密集型 的对象延迟到你真正需要加载的时候再加载大家结合自己的场景尽情的使用吧译文链接https://www.infoworld.com/article/3227207/how-to-perform-lazy-initialization-in-c.html
http://www.sadfv.cn/news/290241/

相关文章:

  • 中小企业商务网站建设七牛云cdn加速wordpress
  • 黄石网站建设报价wordpress进销存
  • 怎么做属于自己的网站传奇公益服
  • 广州红盾信息门户网站制作网站的方法有哪些内容
  • 一级a做爰片免费网站国产室内设计装修案例
  • 服务网站开发做网站没有签合同可以退款吗
  • 网站开发的背景是指什么wordpress 加载顺序
  • 怎么形容网站做的很好馨雨公司网站建设策划方案
  • 龙岗区建设局网站嵌入式开发培训哪家好
  • 浙江网站制作公司WordPress主题没有删除
  • 辽宁省建设机械协会官方网站演员王野天
  • 网站框架图怎么做住房和城乡建设部政务服务平台app
  • 网站建设为什么这么贵溧阳城乡建设局网站
  • 苏州企业网站建网站建设成本明细
  • 湛江网站制作网站经营网站需要什么资质
  • 国内阿里巴巴网站怎么做网站职业技能培训班
  • 做海报创意网站wamp安装wordpress
  • 衡水武邑县建设局网站杭州本地网络推广公司
  • 汽车网站案例网页设计软件开发网站模板
  • 有了php源码怎么做网站灰色行业关键词优化
  • 深圳考试培训网站建设南宁手机企业网站定制公司
  • 有哪些可以做问卷的网站机械行业网站建设方案
  • 网站制作原理移动wordpress文件夹目录下
  • 网站首页大图素材锡盟建设工程造价管理站网站
  • 免费网页设计模板网站一级域名的网站制作
  • 行业网站特点厦门网站改版
  • 网站外包多少钱建设网站要钱吗
  • 金融理财网站建设方案广告设计主要学什么内容
  • 免费建站网站seo东营网站建设方案策划
  • 哈尔滨网站推广服务网站建设价格明细表