zoukankan      html  css  js  c++  java
  • 泛型(二)泛型委托

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

    namespace 泛型委托
    {
        delegate  void  StackEventHandler<T,U>(T sender,U eventArgs); //定义委托
        //delegate  void   BinaryOp             (int x,   int y);         //非泛型定义委托

        class Stack<T>
        {
            public class StackEventArgs : EventArgs
            { }

            public event StackEventHandler<Stack<T>, StackEventArgs> stackEvent; //定义事件
            //public event BinaryOp                                    eventArgs;  //定义事件

            public virtual void OnStackChanged(StackEventArgs e)
            {
                stackEvent(this, e);
            }
        }

        class SampleClass
        {
            public void HandleStackChange<T>(Stack<T> stack, Stack<T>.StackEventArgs args)
            {
            }
        }

       

        class Program
        {
            public static void Test()
            {
                Stack<double> s = new Stack<double>();  //泛型
                SampleClass o = new SampleClass();      //对象实例化
                s.stackEvent += o.HandleStackChange;    //注册事件
            }

            static void Main(string[] args)
            {
                Test();
                Console.ReadKey();
            }
        }
    }

  • 相关阅读:
    TSQL 基础学习 04
    第13章 网络编程
    Oracle 第一天
    第11章 进程与多线程
    Linux 第06天
    构造Json对象串工具类
    第14章 数据库
    第07章 集合
    YARNMR 大数据第二天
    第12章 多媒体
  • 原文地址:https://www.cnblogs.com/cpcpc/p/2123126.html
Copyright © 2011-2022 走看看