Esempio n. 1
0
 public void DoSomething()
 {
     if (NumberChanged != null)
     {
         Delegate[] dels = NumberChanged.GetInvocationList();
         foreach (Delegate del in dels)
         {
             NumberChangedEventHandler handler = del as NumberChangedEventHandler;
             try
             {
                 handler(serverName, count);
             }
             catch (Exception ex)
             {
                 Delegate.Remove(NumberChanged, del);
             }
         }
     }
 }
Esempio n. 2
0
        public event NumberChangedEventHandler NumberChanged; //

        public List <string> PublishNumber(int count)
        {
            List <string> list = new List <string>();

            if (NumberChanged == null)
            {
                return(list);
            }

            // 获得委托数组
            Delegate[] delegateArray = NumberChanged.GetInvocationList();

            foreach (var item in delegateArray)
            {
                // 进行一个向下转换
                NumberChangedEventHandler method = (NumberChangedEventHandler)item;
                if (NumberChanged == null)
                {
                    return(list);
                }
                list.Add(method(100));       // 调用方法并获取返回值
            }
            return(list);
        }
Esempio n. 3
0
 //public NumberChangedEventHandler NumberChanged;
 public void Register(NumberChangedEventHandler method)
 {
     NumberChanged = method;
 }