【发布时间】:2016-12-16 12:52:38
【问题描述】:
大家好,很抱歉,但你必须一直得到这个,我试图搜索它,但找不到任何特定于我正在寻找的东西。
基本上,我非常了解 VB.NET,并且经常使用它,我想学习的是 C#,所以我决定利用我的空闲时间来尝试掌握它。我通过使用我的一个旧的 VB.NET 自定义二进制对象并手动转换它来做到这一点(不是真正使用转换器,因为我想学习它而不是仅仅转换它。)但是我正在使用互联网来指导我。到目前为止,我正在尝试创建自定义偶数处理程序,我以前的 VB.NET 代码如下;
Public Event BeforeExecution_Handler()
但在 C# 中做这件事似乎有点棘手,我做了以下操作
public event BeforeExecution_HandlerEvent BeforeExecution_Handler;
public delegate void BeforeExecution_HandlerEvent();
首先这是正确的,其次是这里发生了什么,为什么我必须为它创建两次定义。我猜测委托部分是您放置变量的地方,但为什么会这样。谁能解释一下
【问题讨论】:
-
public event EventHandler BeforeExecution_Handler;? -
嗨,是的,我知道这一点,但我不只是想转换它,我想学习它。因此,为什么我采用这种方法,否则我将依赖这些工具,永远不知道实际需要什么。这个问题再次与为什么我需要事件和委托有关,我错过了什么吗?
-
我不明白
-
我从来没有像你那样在 VB.NET 中声明过事件。通常我将它们声明为:
Public Event MyEvent As EventHandler。我猜当您删除As EventHandler部分时,VB 编译器会自动为您创建一个委托。但是在 C# 中似乎没有实现,这就是为什么您需要自己创建它的原因。Delegate是指向方法的指针,事件需要该指针,以便它们知道例如需要哪些参数。
标签: c# .net vb.net delegates vb.net-to-c#