0

本から C# を学んでいますが、このコードはコンパイルされません。ここで問題はどこにありますか?エラーは次の行にあります: evt.SomeEvent += Handler;

コードは次のとおりです。

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();
    }
}

自分のコードを書くのは難しいと感じており、今ではそのほとんどを理解して読むことができますが、自分のプログラムを書くことは私の最大の挑戦だと思っています。

4

1 に答える 1

0

Handlerでパブリックとして宣言しEventDemo、で正しく定義する必要があります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();
    }
}
于 2013-10-26T13:15:27.727 に答える