6

在主题中,我在 Visual Studio 2010 Ultimate 的上下文菜单中找不到“解决”。我在互联网上的老师电脑上看到过它,但我在上下文菜单中找不到它,请查看屏幕。如何得到它?

在此处输入图像描述

4

3 回答 3

5

为了显示“解决”菜单,您必须定位在 VS 认为它能够解决的关键字上。如果您输入错误的关键字或没有引用程序集,VS 将无法解决任何问题。

如果您考虑一下,您可以在代码中键入任何合法关键字,并且可能在某处可能包含该类的程序集,并且如果您引用了该程序集,则您的关键字将是可解析的。由于 VS 不仅不可能知道,而且还需要更改项目才能引用该程序集,因此超出“解决”对话框的范围是有道理的。

如果您想看到它的实际效果,只需创建一行代码,其中缺少一个类:

namespace ResolveTest
{
    class Program
    {
        static void Main(string[] args)
        {
            OtherClass.OtherMethod();
        }
    }
}

请注意,OtherClass 已被标记,因为它无法找到。如果您右键单击它,则没有 Resolve。

现在,添加一个类定义(在另一个命名空间中):

namespace NotInTheSameSpace
{
    public class OtherClass
    {
        public static void OtherMethod()
        {

        }
    }
}

通常,这将完全位于另一个文件或另一个程序集中,但出于演示目的,您可以将其放在现有代码的正下方。您现在应该会在 Main() 中看到“解决”菜单。

我相信你在这里看到的另一件事是,当“解决”对话框没有任何要解决的问题时,它会从上下文菜单中丢失,而不是被禁用但可见。这可能看起来有点令人困惑,但它确实是保持上下文菜单与您当前上下文相关的努力。

于 2012-11-06T15:56:02.993 回答
2

输入File.Open("Test.txt");然后单击Fileen 看看你是否可以找到解决方案。应该可以解决System.IO.File

为了记录,你打开了一个函数的上下文菜单。一个函数不能只解析类型。因此,您可以改为键入:Debug然后打开上下文菜单并将其解析为System.Diagnostics. 然后你可以调用该WriteLine函数。

所以除了你的问题,你需要System.Diagnostics.Debug.WriteLine(object)而不是System.Diagnostics.Debugger.WriteLinewhich 不存在。

于 2012-11-06T16:04:00.810 回答
0

长镜头 - 也许你写错了函数的名称。所以VS就是不能为你解决?

如果不是,则 resolve 仅Using在文件开头添加语句以解决问题。为此,您的项目必须正确引用具有该功能的库。您可以使用“解决方案资源管理器”(所附图片中的右侧菜单)并在项目下您有“参考”选项卡,确保它在那里,如果没有右键单击并“添加参考...”

于 2012-11-06T16:08:32.023 回答