【发布时间】:2018-05-15 08:57:49
【问题描述】:
正如标题所说,VisualStudio 17 (15.7.1) 建议删除“不必要”的 this,据我了解,这实际上很重要。
假设我们有以下简约类:
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 建议删除 this-Keywords。
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 吗? 据我所知,这可能会影响变量,但即使您删除了“this”。一切似乎都很好。
C# 和 .NET 是否自动假定“this”。在这种情况下,右侧变量的含义是什么?
【问题讨论】:
-
个人 id 名称
private int ThisTest1到private int _thisTest1,然后ThisTest1 = this.ThisTest1变为ThisTest1 = _thisTest1。你会准备好隆隆声 -
我也会这样做,但我只是被委派清理一些旧代码,偶然发现了这个 VS 的建议,这让我感到奇怪。
标签: c# .net visual-studio this shadowing