c# - 类型编译错误后新表达式需要 () 或 [] - C#

标签 c# visual-studio-2008 .net-3.5

同事的以下代码在尝试使用 VS 2008 编译时抛出以下错误:

错误:

A new expression requires () or [] after type

代码:

我的类结构:

public class MyClass
{
    public MyClass() {}

    public string Property1 { get; set; }
    public string Property2 { get; set; }
}

示例源代码:

List<MyClass> x = new List<MyClass>();

x.Add(new MyClass 
{
    Property1 = "MyValue",
    Property2 = "Another Value"
});

它“可以在我的机器上运行”,但不能在他的机器上运行。知道为什么吗?

更新
他的目标是 3.5 .NET 框架
他正在使用 System.Collections.Generics 命名空间
MyClass 对象确实有一个构造函数

更新 1:
@Funky81 - 你的例子和我的例子能够在我的电脑上编译。

更新 2:
示例中包含 MyClass 的架构

更新 3:
@DK - 我让我的同事将以下配置部分添加到他的应用程序中:

<system.codedom>
        <compilers>
            <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                <providerOption name="CompilerVersion" value="v3.5"/>
                <providerOption name="WarnAsError" value="false"/>
            </compiler>
            <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                <providerOption name="CompilerVersion" value="v3.5"/>
                <providerOption name="OptionInfer" value="true"/>
                <providerOption name="WarnAsError" value="false"/>
            </compiler>
        </compilers>
    </system.codedom>

他收到以下编译错误:无法识别的元素“providerOption”。

最佳答案

这是 VS.2008 中唯一相似但不完全相同的错误:

Compiler Error CS1526 : A new expression requires (), [], or {} after type

注意错误消息中的那些 {},它们是 c# 3.0 语法的一部分。这与框架版本无关,与语言版本有关。

我敢打赌,不知何故使用了不同版本的编译器。

补充:这看起来可能是 ASP.Net 的问题。要检查的地方在 .config 文件中,元素

configuration\system.codedom\compilers\compiler @language="c#..."

应该有

<providerOption name="CompilerVersion" value="v3.5"/>

关于c# - 类型编译错误后新表达式需要 () 或 [] - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/389644/

相关文章:

.net-4.0 - 从 3.5 升级到 4 时 edmx 文件中的警告

c# - Windows 10 UWP - 如果前台应用程序正在运行,则停止后台任务

javascript - 部分 View 部分与 JQuery 配合使用,但不完全与 C# ASP.Net MVC 5 配合使用

c# - foreach 循环不会遍历列表中的所有项目 - C#

c++ - .obj : fatal error LNK1107: invalid or corrupt file: cannot read at 0x6592

c# - 处理导致空序列等的 LINQ 语句的最佳实践?

c# - .NET 的 headless (headless) webkit

c# - 二进制格式器到字符串

visual-studio-2008 - PriorityAttribute 在 MSTEST/Visual Studio 中的用途是什么

.net - 如何在ASP.NET中以 'YYYY-MM-DD'格式获取当前日期?