Как видно из заголовка, 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 предложит удалить 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 автоматически «это». значение для правосторонних переменных в этом случае?