【发布时间】:2017-08-17 18:51:56
【问题描述】:
使用元组任务时,我无法查看调试信息。例如。当断点命中时,我无法在悬停时、本地窗口或监视窗口中查看任何变量。
repro 只是新建一个 WPF 应用,添加 System.ValueTuple,将此代码添加到 MainWindow.xaml.cs,然后在两行都用“return”设置断点。
using System.Threading.Tasks;
using System.Windows;
namespace WpfApp2
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
var task1 = TaskWithLocalDebugInfo();
var task2 = TaskWithoutLocalDebugInfo();
}
private async Task<bool> TaskWithLocalDebugInfo()
{
var viewableInLocalWindowAndHover = true;
return viewableInLocalWindowAndHover;
}
private async Task<(bool, bool)> TaskWithoutLocalDebugInfo()
{
var notViewableInLocalWindowAndHover = true;
return (notViewableInLocalWindowAndHover, notViewableInLocalWindowAndHover);
}
}
}
编辑:如果我添加不可查看的局部变量来观看,我会得到:error CS8182: Predefined type 'ValueTuple`2' must be a struct.
【问题讨论】:
-
你没有在等待任何东西,所以无论如何你只会看到
Task。 -
无论哪种方式都应该有效,但都没有
-
在这个 sn-p 中我不关心返回值。我关心本地方法调试信息。
-
我不知道你在说什么。如果我在带有返回值的行上放置一个断点,我应该能够悬停并查看
notViewableInLocalWindowAndHover的值 -
是的,这对我不起作用。您可以从我链接的仓库中尝试吗?
标签: c# visual-studio visual-studio-2017 c#-7.0