zoukankan      html  css  js  c++  java
  • 委托学习笔记二(多播委托)

    多播委托是指引用多个方法委托。当调用委托时,它连续调用每个方法。为了把委托的单个实例合并为一个多播委托,委托必须是同类型的,返回类型必须是void,不能带输出参数(但可以带引用参数)。
    除此之外,它们的声明和实例化都和其他委托没有什么不同。多播委托用于C#的事件模型中。   
         您可以把多播委托看作两个或多个标准委托串在一起。委托可以使用算术运算符+和+=串在一起。委托也能使用-和-=运算符从多播委托中删除。当调用多播委托里,委托所表示的每个方法依次调用。如果有任何参数,它们将用于所有的方法。

    多播委托例子代码:
    public delegate void Message();
        
    class Class1
        
    {
            
    /// <summary>
            
    /// 应用程序的主入口点。
            
    /// </summary>

            [STAThread]
            
    static void Main(string[] args)
            
    {
                
    //
                
    // TODO: 在此处添加代码以启动应用程序
                
    //
                Message msg;
                
    //创建一个多播委托
                msg=new Message(Messages.Greeting);
                msg
    +=new Message(Messages.DateAndTime);

                Message msg2
    =new Message(Messages.Maintenance);
                msg
    +=msg2;
                msg();

                Console.ReadLine();
                
            }

            
        }


        
    public class Messages
        
    {

            
    public static void Greeting()
            
    {
                Console.WriteLine(
    "Welcome to Mandolin Co.");
                
    return;
            }


            
    public static void DateAndTime()
            
    {
                Console.WriteLine(DateTime.Now.ToLongDateString());
                
    return;
            }


            
    public static void Maintenance()
            
    {
                Console.WriteLine(
    "System maintenance be done tonight");
                
    return;
            }

        }


  • 相关阅读:
    TestLink学习六:TestLink1.9.13工作使用小结
    TestLink学习五:TestLink1.9.13和JIRA6.3.6的集成
    TestLink学习四:TestLink1.9.13使用说明
    TestLink学习三:发送邮件的两种配置方法
    TestLink学习二:Windows搭建TestLink环境
    TestLink学习一:Windows搭建Apache+MySQL+PHP环境
    Python:Ubuntu上使用pip安装opencv-python出现错误
    Python:Ubuntu上出现错误 Could not load dynamic library 'libnvinfer.so.6' / 'libnvinfer_plugin.so.6'
    mybatis-generator二次开发总结
    动态代理
  • 原文地址:https://www.cnblogs.com/wuhuihui_dotnet/p/297018.html
Copyright © 2011-2022 走看看