gpt4 book ai didi

c# - 使用静态事件或通过单例订阅的事件订阅?

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:09 24 4
gpt4 key购买 nike

<分区>

谁能告诉我这两种不同方法之间的区别。我知道他们两个都可以处理相同的场景,但是使用第一种或第二种方法有什么优点/缺点吗?你们会去做什么?为什么?

直接订阅事件(使用静态事件):

    public class MyEffect : BaseEffect
{
public delegate void EventHandler (Element sender, Unit target);
public static event EventHandler OnMyEvent;

public Damage(Element elementOwner)
{
this.Owner = elementOwner;
}

public void DispatchEvent(Unit target)
{
if (OnMyEvent != null)
{
OnMyEvent(this.Owner, target);
}
}
}

=> 事件订阅:

      MyEffect.OnMyEvent += CallBack;

或通过 Singleton 订阅:

    public class MyEffect : BaseEffect
{
public delegate void EventHandler (Element sender, Unit target);
public event EventHandler OnMyEvent;

private static MyEffect instance;

public static MyEffect Instance
{
get
{
return instance;
}
}

public Damage(Element elementOwner)
{
this.Owner = elementOwner;
}

public void DispatchEvent(Unit target)
{
if (OnMyEvent != null)
{
OnMyEvent(this.Owner, target);
}
}
}

=> 事件订阅:

      MyEffect.Instance.OnMyEvent += CallBack;

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com