为什么我在调试器中看不到局部变量,C#UWP VS2017?

时间:2017-03-08 16:38:11

标签: c# debugging uwp xamarin.forms visual-studio-2017

我正在尝试调试使用Xamarin表单构建的应用程序,并且现在在C#中运行在Windows上,但我在调试甚至简单的事情时遇到问题,因为调试器无法访问方法中的局部变量。我甚至在下面创建了一个简单的测试,如果我在输出行上放置断点,将输出“hello”,但在监视窗口中它表示测试未在上下文中定义。这是一个简单的例子,但在其他方法中也存在相同的情况。我想知道它是否与异步方法有关?我需要启用一个选项吗?

protected override async void OnStart()
{
    string test = "hello";
    System.Diagnostics.Debug.WriteLine(test);  // If I put breakpoint here, I can't see 'test'.
}

1 个答案:

答案 0 :(得分:1)

我已在Xamarin.Forms版本2.2.0.45中复制了您的问题。您可以尝试将Xamarin.Forms更新到最新版本。右键点击solution - >经理NuGet解决方案包 - >单击NuGet包管理器选项卡上的更新按钮 - >检查所有客户端项目更新到laset版本,就像下面的屏幕截图一样 enter image description here

对于您使用的异步方法,您可以在方法中使用await关键字。

await Task.Factory.StartNew(() =>
{
    string test = "hello";
    System.Diagnostics.Debug.WriteLine(test);
});

如果您尚未使用await关键字,则将同步调用该方法。该语句也将在该方法中执行。