c#涓璄ventArgs鎬庝箞浣跨敤
鍦–#涓紝EventArgs鏄竴涓€氱敤鐨勪簨浠跺弬鏁扮被锛岀敤浜庝紶閫掍簨浠剁浉鍏崇殑鏁版嵁銆備娇鐢‥ventArgs鐨勬楠ゅ涓嬶細
- 鍒涘缓涓€涓户鎵胯嚜EventArgs鐨勮嚜瀹氫箟浜嬩欢鍙傛暟绫伙紝渚嬪锛?/li>
public class MyEventArgs : EventArgs
{
public string Message { get; set; }
public MyEventArgs(string message)
{
Message = message;
}
}
- 鍦ㄥ寘鍚簨浠剁殑绫讳腑瀹氫箟涓€涓簨浠讹紝璇ヤ簨浠朵娇鐢ㄨ嚜瀹氫箟鐨勪簨浠跺弬鏁帮細
public class MyClass
{
public event EventHandler<MyEventArgs> MyEvent;
public void RaiseEvent(string message)
{
MyEventArgs args = new MyEventArgs(message);
OnMyEvent(args);
}
protected virtual void OnMyEvent(MyEventArgs e)
{
MyEvent?.Invoke(this, e);
}
}
- 鍦ㄨ闃呬簨浠剁殑鍦版柟锛屽畾涔変竴涓簨浠跺鐞嗘柟娉曪細
public class Program
{
public static void Main(string[] args)
{
MyClass obj = new MyClass();
obj.MyEvent += Obj_MyEvent;
obj.RaiseEvent("Hello world");
}
private static void Obj_MyEvent(object sender, MyEventArgs e)
{
Console.WriteLine(e.Message);
}
}
鍦ㄨ繖涓緥瀛愪腑锛屽綋MyClass瀹炰緥鐨凴aiseEvent鏂规硶琚皟鐢ㄦ椂锛屼細瑙﹀彂MyEvent浜嬩欢銆傚湪Main鏂规硶涓紝鎴戜滑璁㈤槄浜嗚繖涓簨浠讹紝骞跺湪Obj_MyEvent鏂规硶涓鐞嗕簨浠躲€備簨浠跺鐞嗘柟娉曚娇鐢∕yEventArgs鍙傛暟鏉ヨ幏鍙栦紶閫掔殑娑堟伅锛屽苟鍦ㄦ帶鍒跺彴涓婃墦鍗板嚭鏉ャ€?/p>
娉ㄦ剰锛氬湪瀹氫箟浜嬩欢鏃讹紝浣跨敤娉涘瀷濮旀墭EventHandler