试图了解事件概念。
是否可以在下面的代码的同一类中从静态函数调用公共事件?如果我使用程序类的实例,它将起作用。
由于我不知道发件人要使用的对象是什么,因此我保留了“ 此”关键字,供您审核。放在那里。 我已经检查过这个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...");
}
}
}
答案 0 :(得分:1)
您的问题是sender
委托人没有EventHandler
。快速的解决方案是仅将null
作为sender
传递,或者您可以使用类似Action<EventArgs>
的代表作为代理,而不需要发送者。