VB相当于这个C#的短手片

nav*_*een 3 c# vb.net

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

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

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

Dim users As New List(Of DemoUsers)

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

users.Add(usr1)
Run Code Online (Sandbox Code Playgroud)

VB.NET是否具有等效的C#简写?这也是C#中这个简短的方法.

PS:无法谷歌这个简短的符号可用性,因为我不知道它叫什么.有名字叫它吗?

Jon*_*eet 10

这是一个对象初始值设定项,它也存在于VB中:

New DemoUsers With { .UserName = "name1", .UserAddress = "Address1" }
Run Code Online (Sandbox Code Playgroud)

请注意,如果您还使用集合初始化程序,那么您的C#可能更清晰:

var users = new List<DemoUsers>
{
    new DemoUsers { UserName = "name1", UserAddress = "Address1" }
};
Run Code Online (Sandbox Code Playgroud)

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


Cod*_*ter 5

您可以查看With关键字:

Dim usr1 As New DemoUsers()

With usr1
    .UserName = "name1"
    .UserAddress = "Address1"
End With
Run Code Online (Sandbox Code Playgroud)

您也可以在对象初始值设定项中使用它:

Dim usr1 As New DemoUsers With { .UserName = "name1", 
                                 .UserAddress = "Address1" }
Run Code Online (Sandbox Code Playgroud)