Это способ "экранирования" зарезервированного ключевого слова, чтобы вы могли использовать его в качестве идентификатора. По большей части лучше просто придумать другое имя, чем использовать этот подход, но компилятор C # допускает это.
Что касается примечания, единственное место, где я видел его, где оно имеет смысл, - это когда вы называете параметр экземпляра метода расширения следующим образом:
public static void Foo(this Object @this)
{
// ...
}
Но даже в этом случае было бы так же хорошо назвать параметр source
или что-то такое же, что указывает на его природу.
Относительно того, почему вам когда-либо понадобится личное свойство, которое возвращает this
: , нет никаких причин когда-либо делать это . Вы предоставляете только закрытый метод для доступа к уже доступной ссылке. К счастью, поскольку участник является частным, вы можете легко удалить его.