C# 延迟处理类 Lazy

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Lazy
{
    class Program
    {
        static void Main(string[] args)
        {
            School aa = new School();
            List<student> ass=aa.lazy_students.Value;
            foreach (var m in ass)
            {
                Console.WriteLine("姓名:{0} 年龄:{1},时间:{2}",m.name,m.age,m.date);
            }
            Console.ReadKey();

        }
    }
    public class School
    {
        public Lazy<List<student>> lazy_students { get; set; }

        public School()
        {
            lazy_students = new Lazy<List<student>>(() =>this.SetLazy());
        }
        private List<student> SetLazy()
        {
            List<student> ss = new List<student>{
            new  student{name="sx",age=18,date=DateTime.Now},
            new student{name="sb",age=19,date=DateTime.Now}

            };
            return ss;
        }
    }
    public class student
    {
        public string name { get; set; }
        public int age { get; set; }
        public DateTime date { get; set; }
    }
}
时间: 2024-10-12 22:09:41

C# 延迟处理类 Lazy的相关文章

HDU 1698 Just a Hook (线段树延迟标记(lazy))

题意:有n个数初始值都为1,m个操作a,b,c,表示把区间[a,b]变为c,求最后n个数的和. 经典区间更新求和问题,需要用到延迟标记(或者说是懒惰标记),简单老说就是每次更新 的时候不要更新到底,用延迟标记使得更新延迟到下次需要更新或询问的时候. #include<cstdio> #include<stdlib.h> #include<string.h> #include<string> #include<map> #include<cm

延迟初始化中的 双重检查模式 和 延迟占位类模式 你都用对了吗?

开篇: 正如<Effective Java>第二版中第71条目“慎用延迟初始化”所说: 大多数的域应该正常的被初始化而不是延迟初始化.如果为了达到性能目标,或者为了破坏有害的初始化循环,而必须延迟初始化一个域,就可以使用相应的延迟初始化方法. 对于实例域,就使用双重检查模式(double-check idiom):对于静态域,则使用 lazy initialization hodler class idiom. 对于可以接受重复初始化的实例域,也可以考虑使用单检查模式(single-check

C++面试中的singleton类

引子 “请写一个Singleton.”面试官微笑着和我说. “这可真简单.”我心里想着,并在白板上写下了下面的Singleton实现: 1 class Singleton 2 { 3 public: 4 static Singleton& Instance() 5 { 6 static Singleton singleton; 7 return singleton; 8 } 9 10 private: 11 Singleton() { }; 12 }; “那请你讲解一下该实现的各组成.”面试官的

Java 8 新特性:Java 类库的新特性之 Stream类 ——诺诺&quot;涂鸦&quot;记忆

----------   诺诺学习技术交流博客.期待与您交流!    ---------- 详情请查看:http://blog.csdn.net/sun_promise  Java 类库的新特性之 Stream类 (注:此文中涉及到的一部分图片为网络图片,若有问题,请联系我将其删除.) 一.Java8对IO/NIO 的改进 Java 8 对 IO/NIO 也做了一些改进,主要包括: 改进了java.nio.charset.Charset 的实现,使编码和解码的效率得以提升: 精简了jre/lib

.NET泛型04,使用Lazy&lt;T&gt;实现延迟加载

对于一些"大对象"的创建,我们常常希望延迟加载,即在需要的时候再创建对象实例.现在Lazy<T>很好地支持了这一特点.主要包括: 没有Lazy<T>之前 Lazy<T>实例 延迟加载的本质 没有Lazy<T>之前 在没有Lazy<T>之前,我们通过如下方式实现延迟加载. public class LazySinleton { private LazySingleton() {}   public static LazySing

Redis 在 SNS 类应用中的最佳实践有哪些?

1. 消息队列(通知类.延迟更新类)2. 热点数据的实时缓存(比如feed,数据库.缓存同时写)3. 热点列表数据缓存(首页.热门话题等)4. counter(计数器,大多是用缓存实现的)5. 记日志最好不要用redis,用mongodb比较适合.Redis 在 SNS 类应用中的最佳实践有哪些?,码迷,mamicode.com

用NodeJs实现延迟调用,规避定时任务的闭包问题

很多人在用NodeJs的setTimeout(callback, delay[, arg][, ...])编写定时任务时,习惯上直接操作callback外部的对象object(闭包的特点).这样做有一个隐患,就是当callback真正执行的时候,外部对象object可能已经被销毁了(比如执行了自定义的销毁方法),导致对object进行的处理结果出现了很大的偏差,程序甚至有可能出现异常而退出. 解决这个问题其实很简单,我们只需要在callback回调中重新通过某种方式获取该对象,检查一下该对象是否

11.3.3 用函数模拟延迟计算

在F# 和C# 中计算顺序是提前的:作为给函数参数使用的表达式,在函数自身开始执行之前就计算好了.在C# 和F# 中,我们可以使用函数值模拟延迟计算,另外,F# 甚至有一个专门的关键字,支持延迟计算. 但首先,对于提前计算规则有一个例外,你肯定知道,并经常使用,但只是因为太常用,反而可能没有意识到它的特别.有些特定的C# 运算符,比如,逻辑或(||).逻辑与(&&).条件运算符(?:),以及空合并运算符(null-coalescing,??),能实现短路径(short-circuiting

Swift游戏实战-跑酷熊猫 06创建平台类以及平台工厂类

这节内容我们一起学习下随机长度的踩踏平台的原理是怎么样的. 要点: 平台类 我们的平台类继承于SKNode,这样就能被添加进其它节点进而显示在场景中. 它有一个方法来创建平台,这个方法接收一个包含SKSpriteNode的数组.将数组里面的对象横向拼接在一起组成一个完整的平台.同时计算出平台的宽度 onCreate(arrSprite:[SKSpriteNode]){ for platform in arrSprite{ platform.position.x=self.width self.a