事件.处理程序无法访问,代码来自书本

本文关键字:代码 访问 处理 程序 事件 | 更新日期: 2023-09-27 18:37:06

我正在从一本书中学习C#,但这段代码没有编译。问题出在哪里?错误在此行上:evt。某事 += 处理程序;

这是代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
delegate void MyEventHandler();
class MyEvent
{
    public event MyEventHandler SomeEvent;
    public void OnSomeEvent()
    {
        if (SomeEvent != null)
            SomeEvent();
    }
}
class EventDemo
{
    static void Handler()
    {
        Console.WriteLine("Event occurred");
    }
}
class Program
{
    static void Main(string[] args)
    {
        MyEvent evt = new MyEvent();
        evt.SomeEvent += Handler;  **// ERROR ON THIS LINE: HANDLER DOESN'T EXIST**
        evt.OnSomeEvent();
    }
}

这对我来说是一个缓慢的学习,因为我觉得编写自己的代码很困难,我理解并且可以阅读大部分代码,但是,我认为编写自己的程序是我最大的挑战。

事件.处理程序无法访问,代码来自书本

您必须

EventDemo中将Handler声明为公共,并在Program中正确定义它

class EventDemo
{
    public static void Handler()
    {
        Console.WriteLine("Event occurred");
    }
}
class Program
{
    static void Main(string[] args)
    {
        MyEvent evt = new MyEvent();
        evt.SomeEvent += EventDemo.Handler;
        evt.OnSomeEvent();
    }
}