泛型(二)--泛型委托
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();
        }
    }
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号