如何初始化包含结构和简单元素混合的结构对象



使用VB.NET 2017,我声明了一个有两个成员的结构,其中一个是结构,另一个是字符串,如下所示:

Structure InpFile
Dim name As String
Dim reader As StreamReader
Dim lineIn As String
Dim lineNum As Integer
End Structure
Structure Opts
Dim fin As InpFile
Dim name As String
End Structure

Opts类型的对象如何在声明时初始化?

例如,有一次尝试不起作用:

Dim obj as Opts = {.fin.name = "filename.txt", .fin.lineNum = 0, .name = "JohnnyMnemonic"}

您必须使用With语句。

Dim obj As New Opts With {.fin = New InpFile With {.name = "filename.txt", .lineNum = 0}, .name = "JohnnyMnemonic"}