C# VB和C中的事件有什么区别?
我是一名VB程序员,正在努力学习C#。我学习了如何在vb中创建和引发事件,我发现在C#中没有同样的方法。有没有人看过一篇文章,可以帮助我理解如何在C#中执行事件,并解释为什么它在VB中有所不同 谢谢这有帮助吗C# VB和C中的事件有什么区别?,c#,vb.net,events,C#,Vb.net,Events,我是一名VB程序员,正在努力学习C#。我学习了如何在vb中创建和引发事件,我发现在C#中没有同样的方法。有没有人看过一篇文章,可以帮助我理解如何在C#中执行事件,并解释为什么它在VB中有所不同 谢谢这有帮助吗 差异主要是句法上的 请参阅有关差异的便利参考资料 VB.NET中的事件处理程序是在事件处理程序签名后附加Handling关键字来声明的。在C语言中,您需要使用register with+= 在VB.NET中,您使用RaiseEvent调用事件,在C中,您直接调用委托。读取: C#中的事件
差异主要是句法上的 请参阅有关差异的便利参考资料 VB.NET中的事件处理程序是在事件处理程序签名后附加
Handling
关键字来声明的。在C语言中,您需要使用register with+=
在VB.NET中,您使用RaiseEvent
调用事件,在C中,您直接调用委托。读取:
C#中的事件是一种让类
向客户提供以下信息的通知:
那节课上有些有趣的事情
发生在一个物体上。最
事件的常见用法是
图形用户界面;典型的
中表示控件的类
该接口具有以下事件:
当用户做某事时通知
添加到控件(例如,单击
按钮)
但是,事件不需要仅用于
用于图形界面。事件
提供一种普遍有用的方法
对象发出状态更改的信号
可能对该公司的客户有用
对象事件是一个重要的因素
用于创建类的构建块
可以大量重复使用
不同的节目
其余部分请参阅本文。可以找到一个关于语法中一些关键差异的快速通用参考。搜索“事件”以访问该部分
关键的区别在于VB要求您使用一些关键字而不是加法/减法来连接事件,但为您提供了一个handles关键字来自动将例程连接到事件。当传递委托时,必须使用无意义的AddressOf关键字。(很抱歉这篇社论,但我认为这个关键词造成的混乱比它节省的要多!)主要区别在于所使用的语法。在下面,它们在CLR中使用完全相同的机制 但是,VB.NET通过
with events
和Handles
提供特殊语法,允许您执行以下操作:
Dim WithEvents button1 As Button
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyButton.Click
' Handle button click
End Sub
C#不提供等效项-所有事件都必须通过
事件+=
显式订阅,这更像是VB.NET的AddHandler
语句。这个问题解释了VB.NET中句柄
和C#事件语法之间的区别。谢谢MarkJ非常感谢您的帮助