Когда использовать это ключевое слово при работе с элементами управления на форме в C # - PullRequest
5 голосов
/ 07 августа 2010

Я все еще далека от освоения C #, но ребенок во мне подталкивает меня к тому, чтобы продолжать совершенствовать свое программирование изо дня в день.
Когда я делаю приложение WinForms, я хочу прагматично менять и использовать множество элементов управления.
Что я не понимаю, так это когда мне нужно использовать ключевое слово this.control, а когда мне нужно просто использовать control.
Пример:
Если я хочу изменить текст моего ярлыка, я могу написать

mylabel.text = "Text for label"

или

this.mylabel.tex = "Text for label"

Что из этого является правильным? Есть ли простое объяснение, когда использовать ключевое слово this при использовании элементов управления в WinForms (таких как сетка данных, текст, таблицы и т. Д.)?

Ответы [ 2 ]

7 голосов
/ 07 августа 2010

В этом случае обе эти строки являются «правильными». Однако использование «this» здесь не нужно.

Одна из причин использовать «это» заключается в том, если вам нужно устранить неоднозначность. «это» дает вам однозначный доступ к членам класса. Вот пример:

class Test
{
   public void SetNumber(int number)
   {
      this.number = number;
   }

   private int number;
}

В этом примере вы должны использовать «this» для ссылки на «номер» члена класса и присвоить ему значение в переданном аргументе с тем же именем («number»).

Конечно, было бы лучше иметь соглашение об именах, которое предотвращает это. Я склонен ставить подчеркивание перед частными данными члена (т.е. _number).

5 голосов
/ 07 августа 2010

Строго необходимо, только если вы выполняете разбор между полем / свойством и локальной переменной. Другие предпочитают использовать его в других местах, но это стильное решение.

...