【问题标题】:The type or namespace name 'var' could not be found in WCF Service Application在 WCF 服务应用程序中找不到类型或命名空间名称“var”
【发布时间】:2011-03-17 09:53:13
【问题描述】:

当我尝试在 WCF 服务应用程序中使用“var”时,出现错误“找不到类型或命名空间名称 'var'(您是否缺少 using 指令或程序集引用?)”

【问题讨论】:

  • 你能给我们看一些代码/配置吗?我们无法读懂你的想法(或你的屏幕),真的....

标签: c# .net wcf c#-4.0


【解决方案1】:

如果您尝试在类成员中使用var,则会收到此错误,例如:

public class Foo
{
    var a = 4;
}

var 只能在方法内部使用,不能在类、字段或方法签名中使用。

另请参阅:Why no var on fields?

【讨论】:

  • 原因是C#编译器无法推断a是什么类型。它可能是int,但也可能是任何其他隐式转换为int 的类,例如doubleMyCustomClassSomeEnum
  • @neontapir - 这不是很准确。 4 是 int 文字。 var a = 4; 定义明确,可以在方法体中按预期工作。只是不能在方法之外使用。
  • 好的,很公平。上面的用法示例并不适合我想说的。我应该创建一个新的。谢谢。
【解决方案2】:

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

【讨论】:

  • 这里重要的是编译器,而不是目标运行时。 VS2008 及以上版本应该没问题,不管是哪个目标运行时(除非启用了语言兼容性选项 = 异常很少见)。
【解决方案3】:

对于我的 ASP.NET 3.5 项目,我必须确保我的 web.config 文件中有 3.5 框架编译器设置,例如:

<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>

【讨论】:

    【解决方案4】:

    我在这里大胆猜测,但是var 只能用于局部变量(在方法内部)。

    你是在用它来定义实例变量吗?

    【讨论】:

      【解决方案5】:

      您应该确保您正在为 .NET 3.5 或更高版本构建服务。以前不支持“var”关键字。

      【讨论】:

      • 这里重要的是编译器,而不是目标运行时。 VS2008 及以上版本应该没问题,不管是哪个目标运行时(除非启用了语言兼容性选项 = 异常很少见)。
      【解决方案6】:

      也许您不小心从一个您不期望的目录中调用了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.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-14
        • 1970-01-01
        • 2022-06-17
        • 1970-01-01
        • 2017-07-12
        • 2011-05-13
        相关资源
        最近更新 更多