VisualStudio建议在重要位置删除此关键字?

时间:2018-05-15 08:57:49

标签: c# .net visual-studio this shadowing

正如标题所说,VisualStudio 17(15.7.1)建议删除"不必要的"根据我的理解,这实际上很重要。

让我们说我们有以下简约类:

class ThisExampleClass
{
    public int ThisTest1 { get; set; }
    public int ThisTest2 { get; set; }

    public ThisExampleClass()
    { }

    public ThisExampleClass(int ThisTest1, int ThisTest2)
    {
        this.ThisTest1 = ThisTest1;
        this.ThisTest2 = ThisTest2;
    }
}

到目前为止一切顺利。但是,如果我编写以下代码行,VisualStudio 17建议删除此关键字。

class ThisExampleShowcase
{
    private int ThisTest1;
    private int ThisTest2;

    public ThisExampleShowcase()
    { }

    public void ShowQuestion()
    {
        ThisTest1 = 10;
        ThisTest2 = 11;
        var ThisTest = new ThisExampleClass()
        {
            ThisTest1 = this.ThisTest1, // delete this.
            ThisTest2 = this.ThisTest2  // delete this.
          //ThisTest2 = ThisTest2          Suggested but seems wrong
        };
    }
}

编译器是否知道要分配哪个ThisTest? 据我所知,这可能会影响变量,但即使你删除了"这个。"一切似乎都没问题。

C#和.NET是否会自动采用"这个。"在这种情况下右侧变量的含义是什么?

1 个答案:

答案 0 :(得分:3)

  

编译器是否知道要分配哪个ThisTest?

是。在这种情况下,您无法在分配中使用新创建的对象中的属性,因此只有一个Example record: 1507656308.

  

C#和.NET是否会自动采用"这个。"在这种情况下右侧变量的含义是什么?

没有。这种情况是特别的,因为左侧是属性赋值。在常规任务中,它可能含糊不清。