C# .net 2.0导致错误:';新类型需要()';-仅在.NET2.0中发生

C# .net 2.0导致错误:';新类型需要()';-仅在.NET2.0中发生,c#,console,codedom,C#,Console,Codedom,下面的代码是在CodeDom中生成的。当我将目标框架设置为.NET4.0时,它工作正常-没有错误或警告。将目标framework设置为.net 2.0时,出现以下错误: CS1526:新表达式在类型后需要()或[] 这是怎么回事?!为什么突然切换到.NET2.0会引起错误 期待这里有任何想法 谢谢 埃文 .net 2.0不支持对象初始值设定项。那就行了 test soVar; soVar = new test(); soVar.foo = 0x10007; .net 2.0不支持对象初始值设

下面的代码是在CodeDom中生成的。当我将目标框架设置为.NET4.0时,它工作正常-没有错误或警告。将目标framework设置为.net 2.0时,出现以下错误:

CS1526:新表达式在类型后需要()或[]

这是怎么回事?!为什么突然切换到.NET2.0会引起错误

期待这里有任何想法

谢谢

埃文

.net 2.0不支持对象初始值设定项。那就行了

test soVar;
soVar = new test(); 
soVar.foo = 0x10007;
.net 2.0不支持对象初始值设定项。那就行了

test soVar;
soVar = new test(); 
soVar.foo = 0x10007;

我正在运行Visual Studio 2010,没有遇到您描述的问题

我创建了一个以.Net Framework 2.0为目标的项目,该程序编译:

using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    [StructLayout(LayoutKind.Sequential)]
    struct test
    {
        public uint foo;
    }

    class Program
    {
        static void Main(string[] args)
        {
            test soVar;
            soVar = new test { foo = 0x10007 };
        }
    }
}
也许您是在使用C#2.0(例如Visual Studio 2005),而不是.Net 2.0


要解决此问题,请使用Bala的解决方案(不要使用对象初始值设定项)。

我正在运行Visual Studio 2010,没有遇到您描述的问题

我创建了一个以.Net Framework 2.0为目标的项目,该程序编译:

using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    [StructLayout(LayoutKind.Sequential)]
    struct test
    {
        public uint foo;
    }

    class Program
    {
        static void Main(string[] args)
        {
            test soVar;
            soVar = new test { foo = 0x10007 };
        }
    }
}
也许您是在使用C#2.0(例如Visual Studio 2005),而不是.Net 2.0


要解决这个问题,请使用Bala的解决方案(不要使用对象初始值设定项)。

可能的重复不是重复-我已经读过这个问题了。你能更具体一点吗?你说的“.NET2.0”是指C#2.0吗?C#3.0在.net 2.0上运行,您使用的是C#3功能。可能的重复不是重复-我已经读过这个问题。您能更具体一点吗?你说的“.NET2.0”是指C#2.0吗?C#3.0在.NET2.0上运行,您正在使用C#3功能..NET2.0确实支持初始值设定项,因为C#3是在.NET2.0上构建的。我相信这是一个C#2对C#3的问题..NET2.0确实支持初始值设定项,因为C#3是基于.NET2.0构建的。我相信这是一个C#2对C#3的问题。我想你在这里了解了一些重要的事情-我们可以聊聊吗?我想你在这里了解了一些重要的事情-我们可以聊聊吗?