.net 2.0 导致错误:'新类型需要 () ' - 仅发生在 .net 2.0 中
以下代码是在 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;
}
这是怎么回事?!为什么突然切换到 .net 2.0 会引发错误?
期待在这里提出任何想法。
谢谢,
埃文
The following code is being produced in CodeDom. When I set the target framework to .net 4.0 it works fine - no errors or warnings. When I set the target framework to .net 2.0, I get the following error:
CS1526: A new expression requires () or [] after type
test soVar;
soVar = new test { foo = 0x10007 }; // Error occurs on this line
[StructLayout(LayoutKind.Sequential)]
struct test
{
public uint foo;
}
What is going on here?! Why would switching to .net 2.0 all of the sudden raise an error?
Look forward to any ideas here.
Thanks,
Evan
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
.net 2.0 不支持对象初始值设定项。必须这样做
.net 2.0 does not support object initializers. it will have to do
我正在运行 Visual Studio 2010,并且没有遇到您所描述的问题。
我创建了一个以.Net Framework 2.0为目标的项目,并且该程序编译:
也许您以某种方式使用C# 2.0(例如Visual Studio 2005),而不是 .Net 2.0?
要解决此问题,请使用 Bala 的解决方案(不要使用对象初始值设定项)。
I am running Visual Studio 2010, and do not experience the problem you describe.
I created a project with .Net Framework 2.0 as the target, and this program compiles:
Maybe you are somehow using C# 2.0 (e.g. Visual Studio 2005), not .Net 2.0?
To solve this problem, use Bala's solution (don't use object initializers).