将C#Ctor转换为Vb.Net等效项

时间:2016-02-12 08:45:24

标签: c# .net vb.net constructor code-translation

我从 Windows API CodePack

中获取了此结构定义
public struct IconReference
{
    //...

    public IconReference(string moduleName, int resourceId)
        : this()
    {
        //...
    }

    public IconReference(string refPath)
        : this()
    {
        //...
    }

    //...
}

问题是我不明白如何将这些构造函数转换为Vb.Net。

: this()的含义究竟是什么?

当我使用在线代码翻译器时,它将其翻译为Me.New(),但是,这在编译时失败,因为该结构没有无参数的ctor。

2 个答案:

答案 0 :(得分:3)

C#中的this()调用无参数构造函数。由于您在C#中没有无参数构造函数(并且结构甚至不能包含"显式无参数构造函数"),因此可以省略this()

对于VB.NET代码。您可以省略Me.New()代码。

答案 1 :(得分:2)

需要使用此语法,因为IconReference具有"自动实现的属性":

  public int ResourceId { get; set; }

另见https://stackoverflow.com/a/7670854/121309