C#中的委托给VB.NET

时间:2015-01-15 17:08:47

标签: c# .net vb.net nunit

我正在尝试使用NUnit 2.6.4将这个有效的.NET2 C#转换为.NET2 VB.NET

[Test]
public void Test() {
    Assert.Throws<Exception>(delegate {
        DoSomething(2);
    });
}

public void DoSomething(int i) {
    throw new Exception();
}

然后进入VB:

<Test> _
Public Sub Test()
    Assert.Throws(Of Exception)(Sub() DoSomething(2))
End Sub

Public Sub DoSomething(i As Integer)
    Throw New Exception()
End Sub

这适用于.NET4但不适用于.NET2 - 因为我使用的是匿名方法...但是如何在VB.NET中用.NET2表示委托

类似于:AddressOf DoSomething(2)

1 个答案:

答案 0 :(得分:4)

您可以创建一个新的命名方法,而不是使用匿名方法。

Public Sub Test()
    Assert.Throws(Of Exception)(AddressOf DoSomethingPassingTwo)
End Sub

Public Sub DoSomethingPassingTwo()
    DoSomething(2)
End Sub

Public Sub DoSomething(i As Integer)
    Throw New Exception()
End Sub