吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5107|回复: 14
收起左侧

[其他转载] 【笔记】C#猫和老鼠的故事

[复制链接]
葬礼昨天 发表于 2016-4-24 13:40
今天学到 ”多播委托和事件“ 了,讲一个猫和老鼠的故事:有一个房子里面住着两只猫(Tom、Tony)、老鼠和主人,晚上的时候老鼠会瞎跳,这声音会吵醒猫,而猫"喵喵"叫会吵醒主人,用编程如何实现。
###########################################################
我定义了三个类:Host, Cat, Mouse
并用委托建立了他们之间的联系
###############################
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DelegateSample2
{
    class Program
    {

        /*
         * 将猫叫作为中间介质,将哪几只猫在叫传给主人,再将主人醒来的方法传给老鼠,这样老鼠跳的时候
         * 就能实现多只猫在叫,而只吵醒主人一次
         * 
         */

        static void Main(string[] args)
        {
            Host host = new Host();
            Mouse mouse = new Mouse();
            Cat Tom = new Cat() { Name = "Tom"};
            Cat Tony = new Cat() { Name = "Tony" };

            host.CatYell += Tom.Yell;           //Tom猫叫传给主人的多播委托
            host.CatYell += Tony.Yell;          // Tony猫叫的方法传给主人的多播委托CatYell

            mouse.HostWake += host.Wake;    //将主人醒来的方法地址传给老鼠的HostWake委托


            mouse.Jump();                               //老鼠跳

            Console.Read();
        }
    }
}
//猫类
 class Cat
    {
        public string Name { set; get; }


        public void Yell()
        {
            Console.Write(this.Name);
            Console.WriteLine("猫在叫!");
            
            
        }
    }

//鼠类
class Mouse
    {
        public event Action HostWake;       //实现先猫叫再主人醒来

        public  void Jump()
        {
            Console.WriteLine("老鼠跳!");
            HostWake();
        }
    }

//主人类
 class Host
    {
        public event Action CatYell;        //实现多只猫叫


        public void Wake()
        {
            CatYell();
            Console.WriteLine("主人醒来!");
        }
    }

自学C#也是很累啊,希望能认识同道中人相互帮助,一起进步!!!^_^



u=1151174136,4294893137&fm=21&gp=0.jpg

免费评分

参与人数 3热心值 +3 收起 理由
小可爱~ + 1 用心讨论,共获提升!
Cizel + 1 用心讨论,共获提升!
小小怪 + 1 加油

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 葬礼昨天 发表于 2016-4-24 15:40
intiger86 发表于 2016-4-24 15:03
怎么自学的?什么教程,介绍下

就是看视频学,,,我看的是思胜的郝冠军的C#,觉得还不错,讲得还算深入浅出的,可以看一下,本论坛有
intiger86 发表于 2016-4-26 20:10
葬礼昨天 发表于 2016-4-24 15:40
就是看视频学,,,我看的是思胜的郝冠军的C#,觉得还不错,讲得还算深入浅出的,可以看一下,本论坛有

好的,谢谢
E式丶男孩 发表于 2016-4-24 13:49
WA丶Jerry 发表于 2016-4-24 14:20
不会的路过,只是来顶的
王美君 发表于 2016-4-24 14:22
也只能是看看,啥也做不了

免费评分

参与人数 1热心值 +1 收起 理由
小棉袄 + 1 热心回复!

查看全部评分

still778 发表于 2016-4-24 14:26
666,看不懂,顶贴..
wangqiustc 发表于 2016-4-24 15:00
真厉害,楼主
intiger86 发表于 2016-4-24 15:03
怎么自学的?什么教程,介绍下
wqwaw 发表于 2016-4-24 15:44
看不懂,顶一个
caxzan 发表于 2016-4-24 16:05
楼主啊,我顶你,我也是学C#的,加油,你能行!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-9-23 07:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表