c# 转换成vb.net

isage2002 2009-11-10 09:36:04
public event EventHandler DataChanged;

if (flag && (this.DataChanged != null))
{
this.DataChanged(this, null);
}
...全文
116 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
isage2002 2009-11-13
  • 打赏
  • 举报
回复
通过 C# 代码,我们可以看到被 VB.NET 隐藏了的一些实现细节:

首先,这里一开始声明了几个委托(delegate)。然后声明了三个事件,这里请注意 C# 事件声明的方法:

public event [委托类型] [事件名称];
这里你可以看到 VB.NET 隐藏了声明委托的步骤。

另外提醒你注意代码中具体引发事件的部分:

if (RateReport != null)
{
RateReport(rate);
}

在调用委托之前,必须检查委托是否为 null,否则将有可能引发 NullReferenceException 意外;比较 VB.NET 的代码,VB.NET 的 RaiseEvent 语句实际上也隐藏了这一细节。

isage2002 2009-11-13
  • 打赏
  • 举报
回复
这个问题真郁闷了
isage2002 2009-11-12
  • 打赏
  • 举报
回复
错误依旧
错误 49 “Public Event DataChanged(sender As Object, e As System.EventArgs)”是事件,不能直接调用。请使用“RaiseEvent”
chillystar 2009-11-11
  • 打赏
  • 举报
回复
你的代码改成:
If flag AndAlso (not(Me.DataChanged Is Nothing)) Then
RaiseEvent DataChanged(Me, Nothing)
End If
chillystar 2009-11-11
  • 打赏
  • 举报
回复
C#是null,VB.net是nothing
isage2002 2009-11-11
  • 打赏
  • 举报
回复
自己顶一下
isage2002 2009-11-11
  • 打赏
  • 举报
回复
自己顶
isage2002 2009-11-11
  • 打赏
  • 举报
回复
自己顶
树莓派 2009-11-10
  • 打赏
  • 举报
回复
把完整代码贴上来
gaofenggao 2009-11-10
  • 打赏
  • 举报
回复
还没遇到过
解释多余的 2009-11-10
  • 打赏
  • 举报
回复
ding
isage2002 2009-11-10
  • 打赏
  • 举报
回复
其实我主要问的是 DataChanged 作为一个事件,如何判断NUll
工具转换的是
If flag AndAlso (Me.DataChanged IsNot Nothing) Then
RaiseEvent DataChanged(Me, Nothing)
End If

但是vb.net中 事件DataChanged 不能直接调用
it_gz_xi 2009-11-10
  • 打赏
  • 举报
回复
public event EventHandler DataChanged 

if flag && (me.DataChanged != nothing)
me.DataChanged(me, nothing)
end if

试试
ok9966 2009-11-10
  • 打赏
  • 举报
回复
每种语言都是不同的。写法的。呵呵。建议去看下。net的框架

他们语言虽然不同。但是。net的是需要中间翻译下。转成il类型的中间语言。在进行执行
isage2002 2009-11-10
  • 打赏
  • 举报
回复
一是代码太长,而是也没必要。我主要不明白的是 C#可以判断一个事件变量是否为空,而vb.net 如何让去判断

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧