Constructing an object and calling a method withou

2019-05-04 14:07发布

I'm not entirely sure what to call what C# does, so I haven't had any luck searching for the VB.Net equivalent syntax (if it exists, which I suspect it probably doesn't).

In c#, you can do this:

public void DoSomething() {
    new MyHelper().DoIt(); // works just fine
}

But as far as I can tell, in VB.Net, you must assign the helper object to a local variable or you just get a syntax error:

Public Sub DoSomething()
    New MyHelper().DoIt() ' won't compile
End Sub

Just one of those curiosity things I run into from day to day working on mixed language projects - often there is a VB.Net equivalent which uses less than obvious syntax. Anyone?

2条回答
对你真心纯属浪费
2楼-- · 2019-05-04 14:22

Gideon Engelberth is right about using Call. It is the best option.

Another option is to use a With statement:

With New MyHelper()
    .DoIt()
End With
查看更多
成全新的幸福
3楼-- · 2019-05-04 14:44

The magic word here is Call.

Public Sub DoSomething()
    Call (New MyHelper()).DoIt()
    Call New MyHelper().DoIt()
End Sub
查看更多
登录 后发表回答