В основном, this
дает вам ссылку на текущий объект. Вы можете использовать его для доступа к членам объекта или для передачи текущего объекта в качестве параметров другим методам.
Практически во всех случаях совершенно необязательно размещать его перед доступом к переменным-членам или вызовам методов, хотя некоторые рекомендации по стилю рекомендуют его по разным причинам.
Лично я проверяю, чтобы мои переменные-члены четко отличались от моих параметров, чтобы никогда не использовать «this». Например:
private String _someData;
public String SomeData
{
get{return _someData;}
set{_someData = value;}
}
Тем не менее, это очень индивидуальное предпочтение, и некоторые люди рекомендуют, чтобы вы называли свойство и переменную-член одинаково (только различие в регистре - 'someData' и 'SomeData') и используете ключевое слово this при доступе к закрытому члену для укажите разницу.
Так же, как правило: избегайте его использования. Если вы обнаружите, что используете его, чтобы различать локальные переменные / переменные параметров и переменные-члены, переименуйте одну из них, чтобы вам не приходилось использовать «this».
Случаи, когда я бы использовал его, - это множественные конструкторы, передающие ссылку на другие методы и методы расширения. (См. ответ Джона для примеров)