是的,C#腳本可以實現事件系統。在C#中,你可以使用事件(Event)來處理程序中的特定操作或狀態變化。事件是一種特殊的委托類型,它允許你在代碼中定義一個方法,并在需要時觸發該方法。
以下是一個簡單的C#腳本示例,演示了如何使用事件:
using System;
// 定義一個事件參數類
public class MyEventArgs : EventArgs
{
public string Message { get; set; }
public MyEventArgs(string message)
{
Message = message;
}
}
// 定義一個包含事件的類
public class EventPublisher
{
// 定義事件
public event EventHandler<MyEventArgs> MyEvent;
// 觸發事件的方法
public void RaiseEvent(string message)
{
MyEvent?.Invoke(this, new MyEventArgs(message));
}
}
// 定義一個監聽事件的類
public class EventSubscriber
{
public EventSubscriber(EventPublisher publisher)
{
// 訂閱事件
publisher.MyEvent += OnMyEvent;
}
// 事件處理方法
private void OnMyEvent(object sender, MyEventArgs e)
{
Console.WriteLine($"Event received: {e.Message}");
}
}
public class Program
{
public static void Main()
{
EventPublisher publisher = new EventPublisher();
EventSubscriber subscriber = new EventSubscriber(publisher);
// 觸發事件
publisher.RaiseEvent("Hello, World!");
}
}
在上面的示例中,我們定義了一個EventPublisher
類,它包含一個名為MyEvent
的事件。我們還定義了一個EventSubscriber
類,它訂閱了MyEvent
事件,并在事件觸發時執行相應的操作。最后,在Main
方法中,我們創建了EventPublisher
和EventSubscriber
的實例,并觸發了MyEvent
事件。
當你運行這個腳本時,你將看到以下輸出:
Event received: Hello, World!
這表明事件系統已成功實現,并且當事件被觸發時,事件處理方法被正確調用。