Есть ли способ принудительного использования ключевого слова this
в Visual Studio при обращении к текущим членам экземпляра?
Пример с ошибкой в конструкторе:
class MyClass
{
public object Foo { get; set; }
public MyClass(object foo)
{
Foo = Foo; // this should of course be lowercase but it's easy to miss
}
}
Этот код, вероятно, сгенерирует печально известное исключение 'object reference not set to an instance of an object'
где-то позже.
Как заставить его работать, но все же его легко пропустить:
class MyClass
{
public object Foo { get; set; }
public MyClass(object foo)
{
Foo = foo; // Valid syntax but unclear.
}
}
Это допустимый синтаксис, но его легко пропустить.
Синтаксис, который я хотел бы применить в Visual Studio:
class MyClass
{
public object Foo { get; set; }
public MyClass(object foo)
{
this.Foo = foo; // this is "safe".
}
}
Если это соглашение применяется, япришлось бы вводить this.Foo = this.Foo
, чтобы создать ошибку того же типа, что и в первом примере.
В любом случае я всегда использую ключевое слово this
, поскольку это облегчает мою жизнь при переключении между c # и другими языками, поэтомуне будет никаких недостатков.