• 问题 C: C#委托、类和事件的验证


    题目描述

    程序由两部分组成,如下代码所示。第一部分定义了委托、类和事件。第二部分进行验证。 

    using System;
    namespace HelloWorldApplication
    {
        public delegate void DelegateRing();
        public class Bell{
            public event DelegateRing Ring;
            public void OnRing(){ Ring(); }
        }
    /////////////////////////////////////////////////////////////////
                
                请填写代码
    
    /////////////////////////////////////////////////////////////////
        class HelloWorld
        {
            static void Main(string[] args)
            {
                try{
                    Teacher teacher = new Teacher();
                    teacher.Register(new Bell());
                    Student student = new Student();
                    student.Register(new Bell());
                    Console.ReadKey();
                }
                catch(Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
    }

    输入

    无输入

    输出

    验证事件输出

    样例输入

    .wrapper {position: relative;} #input {position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;}

    样例输出

    teacher
    student

    提示

    只需要输出样例输出的结果

    只需要提交需要填写的代码

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace 委托_类和事件的验证
    {
        public delegate void DelegateRing();
        public class Bell
        {
            public event DelegateRing Ring;
            public void OnRing() { Ring(); }
        }
    
        class Teacher
        {
            public void Register(Bell bell)
            {
                bell.Ring += new DelegateRing(HandleEvent);
                bell.OnRing();
            }
            public void HandleEvent()
            {
                Console.WriteLine("teacher");
            }
        }
        class Student
        {
            public void Register(Bell bell)
            {
                bell.Ring += new DelegateRing(HandleEvent2);
                bell.OnRing();
            }
            public void HandleEvent2()
            {
                Console.WriteLine("student");
            }
        }
    
        class HelloWorld
        {
            static void Main(string[] args)
            {
                try
                {
                    Teacher teacher = new Teacher();
                    teacher.Register(new Bell());
                    Student student = new Student();
                    student.Register(new Bell());
                    Console.ReadKey();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
    }
    

      

  • 相关阅读:
    Mybatis懒加载
    Mybatis 动态SQL
    Mybatis的多表查询
    linux selinux
    linux find/vi复制粘贴
    01-oracle限定查询-20190404
    awk
    sed
    windows删除指定日期前的文件
    win10 sshsecureshellclient删除profile保存的信息
  • 原文地址:https://www.cnblogs.com/mjn1/p/12619062.html
Copyright © 2020-2023  润新知