Mic*_*ern 5 c# .net-3.5 visual-studio-2008
以下代码的同事在尝试使用VS 2008编译时会抛出以下错误:
错误:
新类型表达式需要()或[]
码:
MyClass结构:
public class MyClass
{
public MyClass() {}
public string Property1 { get; set; }
public string Property2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
示例源代码:
List<MyClass> x = new List<MyClass>();
x.Add(new MyClass
{
Property1 = "MyValue",
Property2 = "Another Value"
});
Run Code Online (Sandbox Code Playgroud)
它"适用于我的机器",但不是他的.知道为什么吗?
更新
他的目标是3.5 .NET框架
他正在使用System.Collections.Generics命名空间
MyClass对象确实有一个构造函数
更新1:
@ Funky81 - 您的示例和我的示例能够在我的PC上编译.
更新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>
Run Code Online (Sandbox Code Playgroud)
他收到了以下编译错误:无法识别的元素'providerOption'.
这是VS.2008中可用的唯一类似但不完全相同的错误:
编译器错误CS1526: 类型后,新表达式需要(),[] 或{}
请注意{}错误消息中的那些,它们是c#3.0语法的一部分.这与框架版本无关,而与语言版本无关.
我敢打赌,不知何故使用了不同版本的编译器.
补充:这看起来像ASP.Net可能存在的问题.要检查的地方是.config文件,元素
configuration\system.codedom\compilers\compiler @language="c#..."
Run Code Online (Sandbox Code Playgroud)
应该有
<providerOption name="CompilerVersion" value="v3.5"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14519 次 |
| 最近记录: |