小编ste*_*ano的帖子

调试期间鼠标悬停(DataTip)后自动实例化的属性

大家晚上好。我发生了一些非常奇怪的事情。经过多次测试,我发现,在调试模式(Visual Studio 2017)下,通过鼠标悬停在属性上出现DataTip后,它被独立实例化并设置为空。它是 Visual Studio 中的错误还是发生这种情况的原因?

    private List<int> myVar;
    public List<int> MyProperty
    {
        get
        {
            if (myVar == null)
            {
                myVar = new List<int>();
                return myVar;
            }
            else
                return myVar;
        }
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        List<int> list = MyProperty;
    }
Run Code Online (Sandbox Code Playgroud)

鼠标悬停在 myVar 上

如您所见,如果您将鼠标放在 myVar 上,您将正确获得 null,但是如果您将其放在 MyProperty 上,它会自动实例化,并且 myVar 也会立即实例化。

鼠标悬停在 MyProperty 上这种行为在调试过程中给我带来了很多问题,我花了很长时间才弄清楚发生了什么。这是正常行为还是错误?请注意,我没有提供 set 访问器。

c# visual-studio-debugging

1
推荐指数
1
解决办法
46
查看次数

标签 统计

c# ×1

visual-studio-debugging ×1