首页 > 解决方案 > 我们可以从同一个类中的公共静态方法调用事件吗?

问题描述

试图理解事件概念..

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

我留下“这个”关键字,因为它在那里供您审查,因为我不知道发件人放什么对象。我已经检查了如何从同一类中的静态函数调用公共事件?但没有得到这个概念。

让我知道我是否可以尝试做什么以及如何做?

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...");
        }
    }
}

标签: c#events

解决方案


您的问题是您没有sender代表EventHandler。快速的解决方案是直接传递nullsender或者您可以使用像Action<EventArgs>代理这样的东西并且不需要发件人。


推荐阅读