C#->;之后的'New SomeClass{Key.SomeProperty=SomeValue}'中出现语法错误;VB转换

C#->;之后的'New SomeClass{Key.SomeProperty=SomeValue}'中出现语法错误;VB转换,c#,.net,vb.net,c#-to-vb.net,C#,.net,Vb.net,C# To Vb.net,我和我的一个同事都做编程。他已经用C#上了一堂课,我正在把它转换成VB.NET。除了一行代码外,我把整个类都转换了,现在我想不出来了,所以我想一双新的眼睛可能会发现我的错误 原始C#代码 using (var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate })) 已转换的VB.NE

我和我的一个同事都做编程。他已经用C#上了一堂课,我正在把它转换成VB.NET。除了一行代码外,我把整个类都转换了,现在我想不出来了,所以我想一双新的眼睛可能会发现我的错误

原始C#代码

using (var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate })) 
已转换的VB.NET代码

using (var client = new HttpClient(new HttpClientHandler { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate })) 
使用client=New-HttpClient(带有{Key.AutomaticDecompression=DecompressionMethods.GZip或DecompressionMethods.Deflate}的新HttpClientHandler)
错误 对象初始化中正在初始化的字段或属性的名称必须以“.”开头

错误位于“键”下


最后一点注意:我在大多数情况下使用了一个可怕的代码转换器,所以我不确定“密钥”来自哪里

不确定
键是从哪里来的

通过Instant VB运行此命令可以得到以下结果,因此它与我的想法一致,即不需要

Option Infer On

Using client = New HttpClient(New HttpClientHandler With {.AutomaticDecompression = DecompressionMethods.GZip Or DecompressionMethods.Deflate})

不确定
键是从哪里来的

通过Instant VB运行此命令可以得到以下结果,因此它与我的想法一致,即不需要

Option Infer On

Using client = New HttpClient(New HttpClientHandler With {.AutomaticDecompression = DecompressionMethods.GZip Or DecompressionMethods.Deflate})

有两个具有相似语法但不同语义的概念:

匿名类型

C:
新建{A=1,B=2}

VB:
New,带有{Key.A=1,Key.B=2}

此处,其中:

New与{Key.A=1,Key.B=2,.SomeMutableProperty=3}

因此,
关键字在这里很重要

命名类型的对象初始值设定项

C:
newmyclass{A=1,B=2}

VB:
newmyclass与{.A=1,.B=2}

这里,设置了MyClass的现有属性,因此
关键字是不相关的,因此是不允许的



显然,您的C#->VB转换器认为这是一个匿名类型,尽管它是一个对象初始值设定项。删除
关键字,并向转换器的开发人员发送错误报告。

有两个语法相似但语义不同的概念:

匿名类型

C:
新建{A=1,B=2}

VB:
New,带有{Key.A=1,Key.B=2}

此处,其中:

New与{Key.A=1,Key.B=2,.SomeMutableProperty=3}

因此,
关键字在这里很重要

命名类型的对象初始值设定项

C:
newmyclass{A=1,B=2}

VB:
newmyclass与{.A=1,.B=2}

这里,设置了MyClass的现有属性,因此
关键字是不相关的,因此是不允许的



显然,您的C#->VB转换器认为这是一个匿名类型,尽管它是一个对象初始值设定项。删除
关键字,并向转换器的开发人员发送错误报告。

并确保您在
上有
选项推断。出于好奇-您为什么需要这样做?@NicoE我们正在开发一个程序,以使票务软件服务自动化,并确保您在
上有
选项推断。出于好奇-为什么你需要这么做吗?@NicoE我们现在正在开发一个自动售票软件服务的程序,这就是为什么我需要一套新的眼睛lol。。。太棒了,修好了。当计时器用完时,我会标记为已回答。这就是为什么我需要一双新的眼睛lol。。。太棒了,修好了。当计时器用完时,我将标记为已回答。