C\#이벤트 용법 실례 분석

2107 단어 C#이벤트
이 글 의 실례 는 C\#사건 용법 을 서술 하 였 다.모두 에 게 참고 하도록 공유 하 다.구체 적 인 분석 은 다음 과 같다.
EventHandler의 정 의 는 다음 과 같 습 니 다.
public delegate void EventHandler(object sender,TEventArgs e) where TEventArgs:EventArgs
첫 번 째 매개 변 수 는 object 형식 이 어야 합 니 다.
두 번 째 매개 변 수 는 T 형식(즉 범 형)으로 T 의 제약 을 정 의 했 습 니 다.기본 클래스 EventArgs 에서 파생 되 어야 합 니 다.
CardInfoEventArgs 는 기본 클래스 EventArgs 에서 파생 됩 니 다.
예 를 들다

#region     1
//EventArgs 
public class CardInfoEventArgs : EventArgs
{
public string Car { get; private set; }
public CardInfoEventArgs(string car)
{
  this.Car = car;
}
}
//      
public class CarDealer
{
public event EventHandler<CardInfoEventArgs> NewCardInfo;
public void NewCar(string car)
{
  Console.WriteLine("CarDealer,new car{0}", car);
  //       ,      NewCardInfo     。
  //          ,     
  if (NewCardInfo != null)
  {
 NewCardInfo(this, new CardInfoEventArgs(car));
  }
}
}
//      
public class Consumer
{
private string name;
public Consumer(string name)
{
  this.name = name;
}
//       
public void NewCarIsHere(object sender, CardInfoEventArgs e)
{
  Console.WriteLine("{0}:car {1} is new", name, e.Car);
}
}
#endregion
private void button_    1_Click(object sender, EventArgs e)
{
  CarDealer dealer = new CarDealer();
  Consumer michael = new Consumer("Michael");
  dealer.NewCardInfo += michael.NewCarIsHere; //    
  dealer.NewCar("  ");
  Consumer nick = new Consumer("Nick");
  dealer.NewCardInfo += nick.NewCarIsHere; //    
  dealer.NewCar("  ");
  dealer.NewCardInfo -= michael.NewCarIsHere; //      
  dealer.NewCar("  ");
}
테스트 결과 캡 처

본 고 에서 말 한 것 이 여러분 의 C\#프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기