Это действительно упрощение?

Итак, у меня есть довольно простой класс с полем Id, а в конструкторе можно установить Id.

Обычно я использую this, чтобы четко идентифицировать свойство класса, а не аргумент метода. Для меня это кажется яснее.

IDE0003 хочет, чтобы я удалил this, с сообщением "Имя можно упростить", правильно ли это?

Это кажется мне менее понятным, а также позволяет ошибке обсадной колонны легко привести к id = id.

введите описание изображения здесь

Ответы

Ответ 1

Ключевое слово this почти всегда не нужно, см. Когда вы используете ключевое слово "his" ?.

позволяет легко обвести ошибку обсадной колонны в id = id

Это даст другое предупреждение самостоятельно:

Назначение одной переменной; вы имели в виду присвоить что-то еще?

Ответ 3

Если вы используете General Naming Conventions, то ключевое слово this является избыточным, поскольку параметр должен быть id, а свойство должно быть id на основе Naming Guidelines. Так что кажется ясным:

public int Id 
{ 
   get; 
   private set; 
}


public VSOMessage(int id)
{
    Id = id;
}

Обратите внимание, что сами рекомендации не говорят, использовать или не использовать ключевое слово this, но поскольку С# чувствителен к регистру, было бы проще удалить ключевое слово this, но , когда вы не используете Соглашения об именах, тогда вы можете называть свойство id вместо id, поэтому в таких случаях следует использовать ключевое слово this.

Ответ 4

Если вы хотите предотвратить предупреждение в коде, а не обновлять параметры Visual Studio, используйте аннотацию данных SuppressMessage, которая предотвратит предупреждение.

Это выглядит примерно так:

[SuppressMessage("Reason #Enter whatever you'd like", "ID, must match what intellsense is showing it looks something like this: IDE0001", Justification = "(optional, your own description")]

Вот точный пример вашей "этой" переменной ситуации.

[SuppressMessage("IntelliSenseCorrection", "IDE0003", Justification = "Allowing this variable to consistency/readability of code.")]