C#注册静态事件demo
时间: 2023-07-01 19:17:51 浏览: 48
以下是一个简单的 C# 注册静态事件的示例代码:
```csharp
using System;
public static class MyEventClass {
public static event EventHandler MyEvent;
public static void RaiseEvent() {
MyEvent?.Invoke(null, EventArgs.Empty);
}
}
public static class Program {
public static void Main() {
MyEventClass.MyEvent += MyEventHandler;
MyEventClass.RaiseEvent();
}
private static void MyEventHandler(object sender, EventArgs e) {
Console.WriteLine("Static event handled.");
}
}
```
在这个示例中,`MyEventClass` 定义了一个静态事件 `MyEvent`。`RaiseEvent` 方法用于触发该事件。在 `Program` 类中,我们使用 `+=` 运算符来注册静态事件处理程序 `MyEventHandler`。最后,我们调用 `MyEventClass.RaiseEvent` 来触发事件并执行处理程序。注意,处理程序必须是静态方法。
相关问题
C#j静态事件demo
以下是一个简单的 C# 静态事件 demo:
```csharp
using System;
delegate void EventHandler(string message);
class EventDemo
{
static void Main()
{
MyClass.OnMessage += new EventHandler(ShowMessage);
MyClass.Message = "Hello World!";
}
static void ShowMessage(string message)
{
Console.WriteLine("Message: {0}", message);
}
}
class MyClass
{
public static event EventHandler OnMessage;
private static string message;
public static string Message
{
get { return message; }
set
{
message = value;
if (OnMessage != null)
{
OnMessage(message);
}
}
}
}
```
在这个 demo 中,我们定义了一个名为 `MyClass` 的类,其中包含一个静态事件 `OnMessage` 和一个私有静态字段 `message`。当 `message` 字段的值发生变化时,会触发 `OnMessage` 事件。在 `Main` 方法中,我们订阅了 `MyClass` 类的静态事件 `OnMessage`。当我们设置 `Message` 属性的值时,`OnMessage` 事件会被触发,并且会调用 `ShowMessage` 方法来显示消息。由于 `OnMessage` 事件是静态的,所以我们不需要创建 `MyClass` 对象就可以访问该事件。
C#静态事件
在C#中,静态事件是指与静态成员相关联的事件。静态事件可以使用static关键字定义,它们类似于实例事件,但是它们只能与静态成员一起使用。
以下是定义静态事件的基本语法:
```
public static event EventHandler MyStaticEvent;
```
在这个示例中,我们定义了一个名为MyStaticEvent的静态事件,它是一个EventHandler类型的委托。我们可以像使用普通实例事件一样使用静态事件。
以下是一个使用静态事件的示例:
```
public static class MyStaticClass
{
public static event EventHandler MyStaticEvent;
public static void DoSomething()
{
//执行某些操作
MyStaticEvent?.Invoke(this, EventArgs.Empty);
}
}
public static void Main()
{
MyStaticClass.MyStaticEvent += MyEventHandler;
MyStaticClass.DoSomething();
}
private static void MyEventHandler(object sender, EventArgs e)
{
//处理事件
}
```
在这个示例中,我们定义了一个名为MyStaticClass的静态类,它包含一个名为MyStaticEvent的静态事件。我们还定义了一个名为MyEventHandler的静态方法,该方法将用作事件处理程序。
在Main方法中,我们使用+=运算符将MyEventHandler方法添加为MyStaticEvent事件的处理程序。然后,我们调用MyStaticClass的DoSomething方法,该方法执行某些操作并触发MyStaticEvent事件。在事件触发时,将调用MyEventHandler方法并处理事件。