VS 2017本地功能调试怪异

时间:2017-03-13 02:55:47

标签: c# visual-studio-2017

在调试本地函数时,我在VS 2017的调试器中看到了一些奇怪的东西。

请查看下面的代码,并在包含对if的调用的string.IsNullOrWhitespace()语句中添加断点。

当调试器到达指示的行时,按F10。出于某种原因,控制转到下一行:return false;,但该方法并不真正返回false(也不应该)。再次按F10可使控制下降 致电return LocalContainsG()

为什么在点击断点后按F10时控件会转到return false;语句?这对我来说毫无意义。

internal class Program {
   private static void Main() {
      System.Console.WriteLine("Contains as G? " + new Program().ContainsG("pizza"));
  }

    bool ContainsG(string text) {
       if (string.IsNullOrWhiteSpace(text)) // PUT BREAKPOINT HERE THEN PRESS F10
          return false; // Debugger stops here!!!

       bool LocalContainsG(string target) {
          return target.Contains("G");
       }

       return LocalContainsG(text);
    } 
}

0 个答案:

没有答案