【问题标题】:Syntax for Initializing Array of Anonymous Objects初始化匿名对象数组的语法
【发布时间】:2016-09-16 10:15:59
【问题描述】:

你可以这样initialize an anonymous object

Dim cust = New With {.Name = "Hugo", .Age = 23}

你可以像这样initialize a collection

Dim numbers = {1, 2, 3, 4, 5}
Dim names As New List(Of String) From {"Christa", "Brian", "Tim"}

但是你可以初始化一个匿名对象数组吗支持语法

你可以这样做,但custs 将只是一个普通的object

您可以这样做,但custs 中的每个项目将只是一个普通的object

如何初始化列表/集合/数组,以便我可以访问集合的全部功能以及内部匿名对象类型的属性

【问题讨论】:

    标签: vb.net syntax initializer


    【解决方案1】:

    问题在于 推断输入 选项已关闭。这可以通过一个更简单的示例来说明,在该示例中初始化一个对象而不首先声明其类型会导致一个普通的、无聊的对象。

    要解决此问题,您可以使用选项语句打开推断类型:

    Option Infer On
    

    现在我们的简单日期示例应该可以工作了:

    最后,只需确保您编译一次代码,因为匿名对象实际上是作为隐藏类在幕后实现的。

    【讨论】:

    • 这称为“推断类型”(与在 C# 中使用“var”相同)并且不需要使用 Option Strict Off。动态类型使用 Option Strict Off 并声明为 Object(与在 C# 中使用“动态”相同)..
    猜你喜欢
    • 2013-06-07
    • 2016-12-09
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    相关资源
    最近更新 更多