【发布时间】:2014-08-12 05:25:43
【问题描述】:
任何人都可以与我分享 vb.net 中的以下代码。
public class Class1 : ComboBox
{
public event ItemCheckEventHandler ItemCheck;
public class f
{
private Class1 c;
public f(Class1 c1)
{
c = c1;
c.ItemCheck += c_ItemCheck;
}
void c_ItemCheck(object sender, ItemCheckEventArgs e)
{
c.ItemCheck(sender, e);
}
}
}
Bellow 是等效的(转换后的代码):
Public Class Class1
Inherits ComboBox
Public Event ItemCheck As ItemCheckEventHandler
Public Class f
Private c As Class1
Public Sub New(c1 As Class1)
c = c1
AddHandler c.ItemCheck, AddressOf c_ItemCheck
End Sub
Private Sub c_ItemCheck(sender As Object, e As ItemCheckEventArgs)
RaiseEvent c.ItemCheck(sender, e)
End Sub
End Class
End Class
问题:c# 工作正常,但在转换后的代码中,RaiseEvent 语句给出以下错误:
- c 不是 app.f 的事件
- 预期语句结束
谁能告诉我正确的语法。
谢谢
【问题讨论】:
-
你是如何在一个类里面定义一个类的?
-
它和上面的例子一样。在 c# 中工作的类中的类。但是 vb.net 在 raiseevent 然后无法通过对象找到事件时给出错误。
-
你不能从内部类中引发外部类的事件
-
但是,通过实例提升。
-
@paritosh:C# 代码是有效的——奇怪的是 VB 不允许这样做。