VB.NET相当于匿名类型的C#对象初始化器

VB.NET相当于匿名类型的C#对象初始化器,第1张

概述我对.NET类型系统的高级功能没有经验.我找不到zz的类型(可以写​​什么而不是var.或者var是最好的选择吗?) string foo = "Bar";int cool = 2;var zz = new { foo, cool }; // Watches show this is Anonymous Type 但最重要的是,如何在VB.NET代码中实现等效(这是我实际需要的). Di 我对.NET类型系统的高级功能没有经验.我找不到zz的类型(可以写​​什么而不是var.或者var是最好的选择吗?)

string foo = "bar";int cool = 2;var zz = new { foo,cool };    // Watches show this is Anonymous Type

但最重要的是,如何在VB.NET代码中实现等效(这是我实际需要的).

Dim Foo As String = "bar"Dim Cool As Integer = 2Dim zz = {Foo,Cool}    'This is not an equivalent of above,I'm getting an array

我搜索了几个C#源代码,使用了代码监视器并了解了zz在内部的运行方式,但我无法进行下一步.

(我的努力的目的就像VB.NET中的this.)

解决方法 您的代码甚至不会在OPTION STRICT设置为ON的情况下编译,强烈建议使用.没有类型可以从String Int32派生.如果你想要一个Object(),它会编译:

Dim zz As Object() = {Foo,Cool}

但是你想创建一个匿名类型,使用New With:

Dim zz = New With {Foo,Cool}

http://msdn.microsoft.com/en-us/library/bb385125.aspx

使用.NET 4.7和Visual Basic 2017,您还可以使用名称为ValueTuples:

Dim zz = (Fooname:=foo,Coolname:=cool)

现在您可以按名称访问元组项:

int cool = zz.Coolname;

https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/data-types/tuples

总结

以上是内存溢出为你收集整理的VB.NET相当于匿名类型的C#对象初始化器全部内容,希望文章能够帮你解决VB.NET相当于匿名类型的C#对象初始化器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1229415.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存