gpt4 book ai didi

c# - C# 中的对象初始值设定项导致编译时错误

转载 作者:太空狗 更新时间:2023-10-30 00:34:12 25 4
gpt4 key购买 nike

在编译一些 C# 代码时,出现错误:

A new expression requires () or [] after type

我的代码如下:

request.AddExtension(new ClaimsRequest {
Country = DemandLevel.Request,
Email = DemandLevel.Request,
Gender = DemandLevel.Require,
PostalCode = DemandLevel.Require,
TimeZone = DemandLevel.Require,
});

我正在使用 ASP.NET 2.0。

您能帮忙解释一下为什么会出现这个错误吗?

最佳答案

您不能使用 object initializers (new T { Property = value }) 除非您是为 C# 3.0 或更高版本编写的。

不幸的是,对于 C# 3.0 之前的版本,您需要执行以下操作:

ClaimsRequest cr = new ClaimsRequest();
cr.Country = DemandLevel.Request;
cr.Email = DemandLevel.Request;
cr.Gender = DemandLevel.Require;
cr.PostalCode = DemandLevel.Require;
cr.TimeZone = DemandLevel.Require;
request.AddExtension(cr);

A bit more about object initializers here.

判断您使用的 C# 版本的最简单方法是查看您使用的 Visual Studio 版本。 C# 3.0 与 Visual Studio 2008 捆绑在一起。

不过,您确实有一条“出路”。在 .NET 4.0 之前但在 .NET 2.0 之后,所有新的语言和框架功能实际上只是位于 CLR 2.0 版之上的托管库。这意味着如果您下载 C# 3.0+ 编译器(作为更高版本框架的一部分),您可以针对该编译器编译您的代码。 (这在 ASP.NET 环境中并非易事。)

关于c# - C# 中的对象初始值设定项导致编译时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8520974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com