Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 理解C语言中的事件#_C#_Events - Fatal编程技术网

C# 理解C语言中的事件#

C# 理解C语言中的事件#,c#,events,C#,Events,我对编程非常陌生,但我很确定我几乎已经把这件事搞定了。我想我只需要一些指点。我正在尝试创建一个简单的事件示例,每隔一秒钟左右简单地说一声“你好!”。首先,我有我的“出版商”课程: 接下来,我有一个“订户”类: 最后,在我的节目中: public class Program { static void Main(string[] args) { var ThePublisher = new Publisher(); var TheSubscriber = new Subscri

我对编程非常陌生,但我很确定我几乎已经把这件事搞定了。我想我只需要一些指点。我正在尝试创建一个简单的事件示例,每隔一秒钟左右简单地说一声“你好!”。首先,我有我的“出版商”课程:

接下来,我有一个“订户”类:

最后,在我的节目中:

 public class Program {
 static void Main(string[] args) {     

 var ThePublisher = new Publisher();
 var TheSubscriber = new Subscriber();
 TheSubscriber.Subscribe(ThePublisher);
 ThePublisher.MyEvent();

 }
 }

编译器说我有个错误。它在程序的“publisher.MyEvent();”中的“MyEvent”下面画了一条红线。错误显示为“事件'NameOfProject.Publisher.MyEvent'只能出现在+=或-=(从'NameOfProject.Publisher'类型中使用时除外)的左侧”。但是,我知道我输入了“+=”而没有其他内容。它是在我的订户类中声明的。我错过了什么?我做错了什么?

在最后一行中,您调用的是
publisher.MyEvent()
,而不是
publisher.MyMethod()
,这可能是您想要做的


您不能直接从定义事件的类外部触发事件。

在最后一行中,您调用的是
publisher.MyEvent()
,而不是您可能打算调用的
publisher.MyMethod()


您不能直接从定义事件的类外部触发事件。

在最后一行中,您调用的是
publisher.MyEvent()
,而不是您可能打算调用的
publisher.MyMethod()


您不能直接从定义事件的类外部触发事件。

在最后一行中,您调用的是
publisher.MyEvent()
,而不是您可能打算调用的
publisher.MyMethod()

不能直接从定义事件的类外部触发事件

 public class Subscriber
{
     public void Subscribe(Publisher TheObject)
    {
         TheObject.MyEvent += new Publisher.MyEventHandler(SayHello);
    }
     public void SayHello() { Console.WriteLine("Hello!"); }
}
 public class Program {
 static void Main(string[] args) {     

 var ThePublisher = new Publisher();
 var TheSubscriber = new Subscriber();
 TheSubscriber.Subscribe(ThePublisher);
 ThePublisher.MyEvent();

 }
 }