我们可以在同一类中从公共静态方法调用事件吗?

时间:2019-10-28 07:21:48

标签: c# events

试图了解事件概念。

是否可以在下面的代码的同一类中从静态函数调用公共事件?如果我使用程序类的实例,它将起作用。

由于我不知道发件人要使用的对象是什么,因此我保留了“ ”关键字,供您审核。放在那里。 我已经检查过这个How to call a public event from a static function in the same class?,但没有弄清楚这个概念。

让我知道我是否有可能尝试做以及如何做?

using System;

namespace CSharp_ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            loggingInProgramClass = OnLoggingEvent;
            ShowLogging();
        }

        public static event DMethod_ShowCategory_ShowLogging_Event loggingInProgramClass;
        public static void ShowLogging()
        {
            Console.WriteLine("Show Logging method executed...");
            loggingInProgramClass(**this**, new EventArgs());
        }

        private static void OnLoggingEvent(**object sender**,EventArgs e)
        {
            Console.WriteLine("Event triggered...");
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您的问题是sender委托人没有EventHandler。快速的解决方案是仅将null作为sender传递,或者您可以使用类似Action<EventArgs>的代表作为代理,而不需要发送者。