24

我是 C# 的新手。我打了一个断点并按下F10or F11

应该使用哪个键进行编译?

请帮帮我。你能解释一下这个键的作用吗?

4

6 回答 6

40

F10("step over") 不会进一步下降到调用堆栈中。它移动到当前函数的下一行。

F11("step into") 深入到被调用的函数。

void function1()
{
    function2();
    function3();
}

如果上断点function2()F10就会前进到该行function3()F11会推进到第一行里面function2

于 2013-03-23T06:50:28.787 回答
3

如果您是 Visual Studio 的绝对初学者,请说 Visual Studio 2017

功能键 F10 和 F11 有助于跟踪代码中的执行路径,从而有助于检查中间结果和调试代码。

您需要在自己的代码中的任何行(在方法(函数)内)放置一个“断点”。在执行程序之前,只需单击代码窗口的最左边框对应的代码语句,您需要从该代码语句开始调试。您可以在代码中放置多个断点。

现在执行(运行)程序,它将在您的第一个断点处自动运行。现在继续按 F10 从一个语句移动到另一个语句以继续执行程序(按顺序)。

但是,如果您当前处于包含函数(方法)调用的语句中,例如FindSum(a,b); 现在如果您按 F11,它将带您到函数的第一行FindSum(a,b)并继续。请注意,当您的当前语句涉及函数调用时按 F10,它将只执行该函数(而不会将您带到函数体中的语句)并移至代码中的下一行。

简而言之,按 F11 会将您带到包括函数体在内的每一行,但 F10 允许从一行移动到下一行。

于 2018-08-01T17:23:32.190 回答
0

F10一步一步调试。如果您可以调用此类或任何系统类中的任何函数,则F10不要转到该类或方法的定义部分,它们只是逐步进行,但是如果您可以F11用于调试,则它可以转到函数的定义部分或班级。

于 2013-03-23T06:49:10.310 回答
0

F10-> 执行下一行代码,但不执行任何函数调用(Step Over)。

F11-> 每次执行代码一条语句,然后执行到函数调用(Step Into)。

于 2016-02-18T10:10:42.407 回答
0

一个例子。假设我们有下面的代码片段

使用系统;

命名空间 ConsoleApplication1 { 类程序 { 静态无效 Main(string[] args) {
var add = AddFunction(10,20); Console.WriteLine(添加); Console.ReadKey(); }

    static int AddFunction(int a,int b)
    {
            return a+b; 
    }
}  

}

现在在 var add = AddFunction(10,20); 处设置断点

如果我们执行 Step Over(或 F10),那么在该行之后,控件将转到下一行,即 Console.WriteLine(add); 其次是 Console.ReadKey(); 最后 } 最后返回值 0 给 OS。

如果我们执行 Step Into(或 F11),那么在 var add = AddFunction(10,20); 之后 ,控件将进入 AddFunciton 的调用函数实现,即 return a+b 和之后的 Console.WriteLine(add); 等等。

希望这会有所帮助。

于 2016-10-04T04:04:18.407 回答
-2

F10=>Step Over(去执行函数的每一行)

F11=>Step Into(去执行每个函数)

于 2016-10-04T03:57:32.383 回答