【问题标题】:Visual Studio 2008 - var could not be foundVisual Studio 2008 - 找不到变量
【发布时间】:2020-08-03 10:21:59
【问题描述】:

我正在使用 Visual Studio 2008 开发旧版 ASP.NET 网站。该项目构建在其他一些系统上,但它抛出找不到类型或命名空间名称“var”(您是否缺少 using 指令或程序集参考?)我的机器出错。我怀疑我的 Visual Studio 正在用 C# 2.0 编译代码。

我知道 Visual Studio 最新版本中有更改 C# 版本的选项,但 Visual Studio 2008 中没有此类选项。如何在 Visual Studio 2008 网站中更改 C# 版本。

【问题讨论】:

  • 一直有选择使用哪个 C# 版本的选项 - 我相信在“构建”选项卡中,它位于“高级”对话框中。 (我不能轻易测试,因为我不打算安装 VS2008 ......你有什么理由不能为遗留项目使用更现代的 VS 版本?)
  • 话虽如此,如果项目建立在不同的系统上,这表明它不是项目特定的问题。如果您在损坏的系统上的新解决方案中启动一个全新的控制台应用程序,是否仍然会因var 而失败?
  • @JonSkeet 当我创建一个新项目时,我可以使用 var。问题已编辑。添加了VS 2008的构建选项
  • @MaciejLos:不,这真的不是必需的。此错误可能不是是缺少 using 指令的结果,除非在不同的命名空间中确实存在名为 var 的类型。如果System.Linq 丢失是罪魁祸首,则错误消息将非常不同 - 失败将在调用站点,而不是将该调用的结果分配给新变量。如果您对此表示怀疑,请尝试提出一个给出此错误的完整示例,但可以使用using System.Linq; 修复。
  • @JonSkeet,谢谢你的解释。我对你的知识印象深刻。我看过你的博客,读过你的文章(几乎所有)和一本书“深度 C#”。正如@Jay 提到的,使用了System.Linq,所以......我错了。最好的问候,Maciej。

标签: c# visual-studio


【解决方案1】:

根据文章C# language version history,C# 3.0 随 .NET 3.5 和 VS2008 一起发布,它包含隐式类型 (var)。

因此,您不必更改 c# 版本。

像往常一样,当我们使用如下代码时会出现错误The type or namespace name 'var' could not be found

public class Foo
{
    var a = 4;
}

我们应该把它改成:

public class Foo
    {
        public static void SayHello()
        {
            var a = 4;
        }

    }

因为在方法范围内声明的变量可以具有隐式类型 var。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多