3

我想知道是否有一种方法可以在VB中编写以下代码。(现在等效的 VB.NET 代码看起来太冗长了)

List<DemoUsers> users = new List<DemoUsers>();
users.Add(new DemoUsers
{
    UserName = "name1",
    UserAddress = "Address1"
});

现在我正在用 VB.NET 编写它

Dim users As New List(Of DemoUsers)

Dim usr1 As New DemoUsers()
usr1.UserName = "name1"
usr1.UserAddress = "Address1"

users.Add(usr1)

VB.NET 是否有等效的 C# 简写?也叫这个 C# 中的速记方法。

PS:无法谷歌这个速记符号可用性,因为我不知道它叫什么。有名字可以称呼它吗?

4

6 回答 6

10

这是一个对象初始化器,它也存在于 VB 中

New DemoUsers With { .UserName = "name1", .UserAddress = "Address1" }

请注意,如果您还使用集合初始化程序,您的 C# 可能会更干净:

var users = new List<DemoUsers>
{
    new DemoUsers { UserName = "name1", UserAddress = "Address1" }
};

是的,集合初始化器也存在于 VB 中

于 2012-11-01T14:43:59.933 回答
5

你可以看一下With关键字

Dim usr1 As New DemoUsers()

With usr1
    .UserName = "name1"
    .UserAddress = "Address1"
End With

您也可以在对象初始化器中使用它:

Dim usr1 As New DemoUsers With { .UserName = "name1", 
                                 .UserAddress = "Address1" }
于 2012-11-01T14:42:30.293 回答
4
Dim users As New List(Of DemoUsers)()
users.Add(New DemoUsers() With { _
    Key .UserName = "name1", _
    Key .UserAddress = "Address1" _
})

我用http://www.developerfusion.com/tools/convert/csharp-to-vb/

于 2012-11-01T14:41:24.400 回答
1

这是使用名为Object Initializer的功能。

有关VB.Net 中的对象初始化程序,请参阅此 SO 答案。

于 2012-11-01T14:43:53.147 回答
0

它被称为对象初始化器

Dim cust1 As New Customer With {.Name = "Toni Poe", 
                                .City = "Louisville"}
于 2012-11-01T14:41:32.173 回答
0

它称为对象初始化器语法。

在 VB 中

Dim usr1 As New DemoUsers() With
{
    .UserName = "name1",
    .UserAddress = "Address1"
}
于 2012-11-01T14:43:20.397 回答