C# 类型或命名空间名称';var';在WCF服务应用程序中找不到

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只能在方法内部使用,不能在类、字

当我试图在WCF服务应用程序中使用“var”时,它给出了一个错误“找不到类型或名称空间名称“var”(是否缺少using指令或程序集引用?)”

我可以想象这是因为您的目标是c#4.0之前的框架。尝试转到您的项目属性并将目标框架设置为4.0

我在这里做了一个粗略的猜测,但是:
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定义良好,并在方法体中按预期工作。只是你不能在方法之外使用它。好吧,很公平。上面的用法示例与我想说的不符。我应该创建一个新的。谢谢