如何将.NET4 lambda addhandler,sub(arg)eventCompleted(arg1,arg2)转换为.NET2 [英] How to convert .NET4 lambda addhandler , sub(arg) eventCompleted(arg1, arg2) to .NET2

查看:101
本文介绍了如何将.NET4 lambda addhandler,sub(arg)eventCompleted(arg1,arg2)转换为.NET2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我有一个小问题.我不知道如何将.net4 addhandler转换为.net2
有人可以给我一个例子或链接吗?
或如何命名的定义,以便我可以搜索google.

事件签名不等于ASub签名.

Hi,
I have a small problem. I dont know how to convert a .net4 addhandler to .net2
Can someone give me a example or a link?
Or a definition of how it''s named, so i can search google.

The event signature don''t equals the ASub signature.

    Dim name As String = "TikElentrik"
    Dim someThing As New SomeThing(name)

    Event SomeEvent(ByVal Name As String) ' Importend
    addhandler SomeEvent, sub(arg) ASub(name,someThing) '.NET 4.0
    'How to get it in NET 2.0

Public Sub ASub(ByVal Name As String, ByVal Something As something)
    'Doing things
End Sub



在C#中,这样的东西



In C# its somthing like this

string name = "TikElentrik";
SomeThing someThing = new SomeThing(name);

public event SomeEventEventHandler SomeEvent; //Importend
SomeEvent += arg => ASub(name, someThing); //.NET 4.0
//How to get it in NET 2.0

public void ASub(string Name, SomeThing Something)
{
	//Doing Things
}



谢谢,
TikElentrik



Thanks,
TikElentrik

推荐答案

根据MSDN ^ ]和此处 [
According to MSDN here[^] and here[^] the statement is the same in both versions. However, neither of them seem to match what you have coded.


在VB中.Net 4.0和.Net 2.0事件处理之间没有区别.您需要首先声明该方法,并确保事件处理程序具有与事件声明相同的签名.
尝试这样的事情:-

There is no difference between .Net 4.0 and .Net 2.0 event handling in VB. You need to declare the method first, and ensure the event handler has the same signature as the event declaration.
Try something like this:-

Public Event someEvent(ByVal name As String, ByVal b As String)

   Public Sub Form1()
       AddHandler someEvent, AddressOf SubA
   End Sub

   Private Sub SubA(ByVal name As String, ByVal b As String)

   End Sub



希望对您有帮助



Hope this helps


感谢尝试帮助我的人.我找到了解决方法.
Thanks to the persons who tried to help me. I found a solution.
Friend Class Solution
    Public Class SomeThing
        ''A bunch of stuff
        Public Name As String
        Public Sub New(ByVal Name As String)
            Me.Name = Name
        End Sub
    End Class

    Public Event someEvent(ByVal Name As String) ''Importend

    Private NotInheritable Class EventHelper
        Private someThing As SomeThing
        Private parent As Solution

        Public Sub New(ByVal parent As Solution, ByVal someThing As SomeThing)
            Me.parent = parent
            Me.someThing = someThing
        End Sub

        Public Sub ASub(ByVal Name As String)
            Me.parent.ASub(Name, Me.someThing)
        End Sub
    End Class

    Private Sub test()
        Dim name As String = "TikElentrik"
        Dim someThing As New SomeThing(name)

        '' Where the problem was
        ''addhandler SomeEvent , sub(arg) ASub(name,someThing) ''.NET 4.0
        ''How to get it in NET 2.0
        AddHandler someEvent, AddressOf New EventHelper(Me, someThing).ASub
    End Sub

    Public Sub ASub(ByVal Name As String, ByVal Something As something)
        ''Doing things
    End Sub
End Class


如果有更好的一个,请告诉我

Mvg,
TikElentrik.


If there is a better one, please let me know

Mvg,
TikElentrik.


这篇关于如何将.NET4 lambda addhandler,sub(arg)eventCompleted(arg1,arg2)转换为.NET2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆