C# 类型或命名空间名称';var';在WCF服务应用程序中找不到
当我试图在WCF服务应用程序中使用“var”时,它给出了一个错误“找不到类型或名称空间名称“var”(是否缺少using指令或程序集引用?)”我可以想象这是因为您的目标是c#4.0之前的框架。尝试转到您的项目属性并将目标框架设置为4.0我在这里做了一个粗略的猜测,但是:C# 类型或命名空间名称';var';在WCF服务应用程序中找不到,c#,.net,wcf,c#-4.0,C#,.net,Wcf,C# 4.0,当我试图在WCF服务应用程序中使用“var”时,它给出了一个错误“找不到类型或名称空间名称“var”(是否缺少using指令或程序集引用?)”我可以想象这是因为您的目标是c#4.0之前的框架。尝试转到您的项目属性并将目标框架设置为4.0我在这里做了一个粗略的猜测,但是:var只能用于局部变量(在方法内部) 是否使用它来定义实例变量?如果试图在类成员中使用var,则会出现此错误,例如: public class Foo { var a = 4; } var只能在方法内部使用,不能在类、字
var
只能用于局部变量(在方法内部)
是否使用它来定义实例变量?如果试图在类成员中使用
var
,则会出现此错误,例如:
public class Foo
{
var a = 4;
}
var
只能在方法内部使用,不能在类、字段或方法签名中使用
另请参见:您应该确保您正在为.NET 3.5或更高版本构建服务。“var”关键字以前不受支持。对于我的ASP.NET 3.5项目,我必须确保在web.config文件中设置了3.5 framework编译器,如:
<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>
</compilers>
</system.codedom>
也许您意外地从一个您不期望的目录调用了
csc.exe
?我通过使用完整路径运行csc.exe
解决了这个问题:
set csc=c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
%csc% try.cs
rem This was wrong:
set path=%path%;c:\Windows\Microsoft.NET\Framework\v4.0.30319
csc.exe
rem This shows csc version, which turned out to be from Framework 2.0.
你能给我们看一些代码/配置吗??我们无法读懂你的心思(或屏幕),真的……这里重要的是编译器,而不是目标运行时。VS2008和更高版本应该可以,无论是哪个目标运行时(除非启用了语言兼容性选项=异常罕见)。这里重要的是编译器,而不是目标运行时。VS2008和更高版本应该可以,无论是哪个目标运行时(除非启用了语言兼容性选项=异常罕见)。原因是C编译器无法推断
a
是什么类型。它可能是一个int
,但也可能是任何其他隐式转换为int
的类,比如double
或MyCustomClass
或SomeEnum
@neontapir-这不是很准确。4是一个int
文本<代码>变量a=4定义良好,并在方法体中按预期工作。只是你不能在方法之外使用它。好吧,很公平。上面的用法示例与我想说的不符。我应该创建一个新的。谢谢