c# – VS2017调试元组任务时出错

前端之家收集整理的这篇文章主要介绍了c# – VS2017调试元组任务时出错前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用元组任务时,我无法查看调试信息.例如.当他的命中断点时,我无法在悬停,本地窗口或监视窗口中查看任何变量.

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);
        }
    }
}

编辑:如果我添加不可查看的局部变量来监视,我得到:错误CS8182:预定义类型’ValueTuple`2’必须是结构.

解决方法

这是当前版本的Visual Studio 2017中的一个错误.它已经修复,将在下一季度发布.

请参阅MS员工的GitHub issuecomment,说它已修复.

与此同时,来自G00Hub对Apr 13,2017评论

i can confirm that the bug repros with ValueTuple 4.3.0,but not with 4.3.0-preview1-24530-04.

您可以通过NuGet包管理器/管理NuGet包解决方案界面安装“预览”版本.只需从“版本:”下拉列表中选择4.3.0-preview1-24530-04,然后单击“安装”.

人们希望,在Visual Studio的下一次更新之后,不需要使用包的“预览”版本.正如前面提到的评论所指出的,不清楚为什么使用包的“预览”版本可以避免触发错误.但显然,如果可以,最好能够使用最新的“稳定”版本的包装;谁知道自“预览”版本以来发生了哪些变化,这些变化会在调试器或其他方面导致其他一些难以诊断的错误.

原文链接:https://www.f2er.com/csharp/92163.html

猜你在找的C#相关文章