VB.NET相当于匿名类型的C#对象初始化器
发布时间:2020-12-17 07:16:27 所属栏目:百科 来源:网络整理
导读:我对.NET类型系统的高级功能没有经验.我找不到zz的类型(可以写??什么而不是var.或者var是最好的选择吗?) string foo = "Bar";int cool = 2;var zz = new { foo,cool }; // Watches show this is Anonymous Type 但最重要的是,如何在VB.NET代码中实现等效(这
我对.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 = 2 Dim 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |