代码片_记录

  • 委托/事件_开水报警

static void Main()
        {
            var listener = new Listener();
            var boilingEvent = new TempterLisenting();
            listener.Register(boilingEvent);

            for (int i = 93; i < 101; i++)
            {
                boilingEvent.WaterTempterAdd(i);
            }
        }

//水温事件
    public class WaterTempterEventAgrs
    {
        private int waterTempter;

        public int WaterTempter
        {
            get { return waterTempter; }
            set { waterTempter = value; }
        }

        public WaterTempterEventAgrs(int waterTempter)
        {
            this.WaterTempter = waterTempter;
        }
    }

    //事件类,定义事件订阅消息及触发事件
    public class TempterLisenting
    {
        //public event EventHandler<WaterTempterEventAgrs> WaterEvent;
        public delegate void WaterEventHandler(object sender, WaterTempterEventAgrs e);
        public event WaterEventHandler WaterEvent;

        public void WaterTempterAdd(int waterTempter)
        {
            if (WaterEvent != null)
            {
                WaterEvent(this, new WaterTempterEventAgrs(waterTempter));
            }
        }
    }

    //客户类,事件订阅者
    public class Listener
    {
        public void IsWaterBoiling(object sender, WaterTempterEventAgrs e)
        {
            if (e.WaterTempter >= 90 && e.WaterTempter <= 99)
            {
                Console.WriteLine("the water is will boiling:{0}", e.WaterTempter);
            }
            else if (e.WaterTempter == 100)
            {
                Console.WriteLine("the water is boiling:{0}", e.WaterTempter);
            }
        }

        public void Register(TempterLisenting listener)
        {
            listener.WaterEvent += IsWaterBoiling;
        }
    }

  • 事件与委托_C#语言程序设计基础

namespace CodeSample
{
    public delegate void BookDelegate(string bookName, string bookType);

    public class Custormers
    {
        private string custormerName;
        private string custormerBooktype;

        public string CustormerName
        {
            get { return custormerName; }
            set { custormerName = value; }
        }

        public string CustormerBooktype
        {
            get { return custormerBooktype; }
            set { custormerBooktype = value; }
        }

        public Custormers(string m_custormerName, string m_custormerBooktype)
        {
            custormerBooktype = m_custormerBooktype;
            custormerName = m_custormerName;
        }

        public void Registre(BookStore bookStore)
        {
            bookStore.BookDelegate += BookStore_BookDelegate;
        }

        void BookStore_BookDelegate(string bookName, string bookType)
        {
            if (bookType == CustormerBooktype)
            {
                Console.WriteLine("{0},您好。您在本店预约的书类为\"{1}\"的书籍<<{2}>>到货了。", custormerName, bookType, bookName);
            }
        }
    }

    public class BookStore
    {
        public event BookDelegate BookDelegate;

        public void NewBook(string bookName, string bookType)
        {
            BookDelegate(bookName, bookType);
        }
    }

    public class CodeSampleMain
    {
        public static void Main()
        {
            BookStore bookStore = new BookStore();

            Custormers[] custormer = new Custormers[3];
            custormer[0] = new Custormers("黄**", "计算机");
            custormer[1] = new Custormers("二少", "英语");
            custormer[2] = new Custormers("**杰", "玄幻小说");

            for (int i = 0; i < custormer.Length; i++)
            {
                custormer[i].Registre(bookStore);
            }

            bookStore.NewBook("计算机组成原理", "计算机");
            bookStore.NewBook("走遍美国", "英语");
            bookStore.NewBook("紫川", "玄幻小说");

            Console.ReadKey();
        }
    }
}

时间: 2025-01-12 08:43:57

代码片_记录的相关文章

Facebook注册机_Facebook账号注册_Csharp代码示例_.Net代码_VS2013

[Facebook注册机_Facebook账号注册_Csharp代码示例_.Net代码] 朋友叫了很久帮忙写,无奈今天花时间研究下.... 下面只是一个简单示例, 里面我写有一些类,对于写注册机之类的,或许有帮助哟!! ====================================== 注册是成功了,可登录发现跳出手机验证.... 部分代码: using System; using System.Collections.Generic; using System.ComponentMo

salesforce 零基础学习(三十六)通过Process Builder以及Apex代码实现锁定记录( Lock Record)

上一篇内容是通过Process Builder和Approval Processes实现锁定记录的功能,有的时候,往往锁定一条记录需要很多的限制条件,如果通过Approval Processes的条件判断写起来可能很麻烦,有些逻辑通过Apex写起来很容易,此篇内容为通过Process Builder 和Apex代码实现锁定记录. 需求:对Opportunity表进行判断是否加锁或者解锁.当Delivery/Installation Status这一项的值为'Completed'情况下加锁,为其他

TP框架代码学习 学习记录 3.2.3

文件:think.class.php PHP提供register_shutdown_function()这个函数,能够在脚本终止前回调注册的函数,也就是当 PHP 程序执行完成后执行的函数.register_shutdown_function 执行机制是:PHP把要调用的函数调入内存.当页面所有PHP语句都执行完成时,再调用此 函数.注意,在这个时候从内存中调用,不是从PHP页面中调用,所以上面的例子不能使用相对路径,因为PHP已经当原来的页面不存在了.就没有什么相对路 径可言.注意:regis

去年方百度首页播放器写的一个js代码,先记录一下,不支持火狐了,改天用autio改改

播放器内核使用的是 object 或embed 刚刚测试了下,最新的火狐不支持了,IE 360还能用,改天换成audio来做吧 这里先记录下来 支持下一曲,暂停,开始 使用方法很简单: 该代码很简单,使用js实现,使用方法很简单 1.引入css:<link href="css/StyleSheet.css" rel="stylesheet" type="text/css" />2.引入js:<script src="j

第一天的代码练习_基础

//第一天的内容包括JAVA环境配置,数据类型的讲解,数据类型的运算.在环境配置中,要求在 cmd命令窗口下,在任何文件目录下,输入javac.exe,都能够出现正确的显示结果--就需要在环境变量 中设置 public class Test{      public static void main(String[] args){        //不能使用保留字.关键字       /*       变量定义的格式 :数据类型 变量名=初始化值       变量必须先赋值,后使用       

APK反编译jd-gui代码分析(草稿记录)

1. 连续for循环 反编译代码: 1 private void removeHideLines() 2 { 3 int i = 0; 4 if (i >= this.lines.size()) {} 5 for (int j = 0;; j++) 6 { 7 if (j >= this.recordLines.size()) 8 { 9 return; 10 if (((MusicTrackLine)this.lines.get(i)).getX() + ((MusicTrackLine)t

[代码管理_版本控制]开放源代码版本控制系统

当前主流的源代码版本控制系统有:CVS. SVN.Git.Bazzar.Mercurial等几类:多数开源软件源代码都是由上述工具管理,典型的 Linux kernel之前通过SVN,现在由Git工具管理,Ubuntu 发行版所有源代码由 Bazzar 管理.Git.Mercurial和Bazzar为下一代分布式版本控制系统,CVS.SVN 为传统的版本控制系统. 由上述版本控制系统为主功能组成的项目托管平台(也可称协同开发平台)包括:google Code ( 支 持 Git, Mercuri

如何更方便的查看Linux内核代码的更新记录【转】

转自:http://blog.csdn.net/lee244868149/article/details/44302819 Linux内核的更新非常的快,如何快速的了解这些更新呢?最一般的办法就是把新旧版本的内核源码下载下来,然后利用BCompare或别的什么工具进行源码对比,但这明显比较费力耗时,而本文将介绍一种更快捷简单的方法. 在官方http://git.kernel.org/网站可以找到linux的各种git更新记录,比如virt/kvm/kvm.git,通过这个链接,可以看到kvm的各

《Android第一行代码》学习记录007 - 4种基本布局

一.关于布局 布局是用于放置控件的容器 布局可以嵌套,所以可以通过布局完成比较复杂的界面实现 二.4种布局方式总览 LinearLayout: 即线性布局,非常常用 RelativeLayout: 即相对布局,非常常用 FrameLayout: 即桢布局,应用场景比LinearLayout和RelativeLayout少很多 TableLayout: 即表格布局,不常用 三.LinearLayout需要注意的地方 1.关于布局方向,因为是线性的,所以有方向,在布局页面中通过android:ori