当前位置: 首页 > 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.huolong8.cn/news/290241/

相关文章:

  • 海南建设网站网站 架构 设计
  • 做网站 流量怎么抓钱wordpress后台好卡
  • 网站建设步骤详解快捷的网站建设排行榜
  • discuz 手机网站南京专业网站优化公司
  • 个人网站设计模板中文品牌营销的重要性
  • 使用动易模版制作网站wordpress中文完全教程
  • 西宁网站建设费用品牌建设费用包括哪些?
  • 网站建设征求意见表wordpress读取文章样式
  • 组织网站建设应该注意什么网站建设与开发的软件
  • 网页设计与制作教程第四版台州网站优化方案
  • 招标网平台厦门谷歌seo公司
  • 贺州网站seo制作网站赚钱不
  • 营销型网站代理株洲关键词优化
  • 网站源码 后台301重定向手机网站
  • 有没有学做零食的网站wordpress添加主栏目
  • 国外免费建站成都最好的网站建设
  • 无极商城网站建设网站建设价格山东济南兴田德润什么活动
  • 怎么进网站源码的后台梵客联盟
  • 做百度外链哪些网站权重高点d0906网站建设与管理
  • cmsv6官方免费下载上海小红书seo
  • ac86u做网站服务器温州网站
  • org已经备案的网站广东企业宣传片制作公司
  • 物联网学什么湛江seo咨询
  • 不是网站建设必须经历的过程今天足球赛事推荐
  • 目前做网站的公司有哪些做文案策划有些网站
  • 北京南站列车时刻表视觉设计包括
  • 网站编程入门cms系统网站
  • html网站建设方案电子商务网站建设的一般流程
  • 中山网站建设seo优化营销制作设计网站开发教程免费
  • 建设一个网站费用怎样更新网站快照