.net 2.0导致错误:'新类型要求()' - 仅在.net 2.0中发生

0 c# console codedom

CodeDom中生成以下代码.当我将目标框架设置为.net 4.0时,它可以正常工作 - 没有错误或警告.当我将目标框架设置为.net 2.0时,我收到以下错误:

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

test soVar;
soVar = new test { foo = 0x10007 }; // Error occurs on this line

    [StructLayout(LayoutKind.Sequential)]
    struct test
    {
        public uint foo;
    }
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?!为什么切换到.net 2.0会突然引发错误?

期待这里的任何想法.

谢谢,

埃文

Bal*_*a R 6

test soVar;
soVar = new test { foo = 0x10007 }; // Error occurs on this line
Run Code Online (Sandbox Code Playgroud)

.net 2.0不支持对象初始值设定项.它必须这样做

test soVar;
soVar = new test(); 
soVar.foo = 0x10007;
Run Code Online (Sandbox Code Playgroud)

  • .net 2.0支持初始化程序,因为C#3是基于.net 2.0构建的.我相信这是C#2与C#3的问题. (2认同)