Різниця між "Controls.Add ()" і "this.Controls.Add ()" в ASP.NET (C #)

У чому різниця між "Controls.Add (xyz)" і "this.Controls.Add (xyz)" в ASP.NET (C #)?

Як/коли це має значення, якщо я додаю той же контроль до веб-сторінки, але за допомогою двох (різних) вищезазначених методів?

Коли потрібно віддати перевагу іншому?

1
додано Автор Magnus, джерело

6 Відповіді

Різниці немає; цей посилається на поточний екземпляр класу, в якому ви перебуваєте. Без вказівки цього , ви отримаєте найближчий метод у межах поточної області (що є це все одно).

3
додано

У цьому випадку, є невелика різниця.

Використання this робить ваш код трохи більш явним, що він відноситься до члена класу.

Використовуйте все, про що ви і ваша команда погодилися.

2
додано
@Downvoter - потурбуватися про коментарі?
додано Автор Oded, джерело

У вашому випадку this представляє поточний екземпляр класу. Отже, якщо ви не маєте справи з методами розширення, ви повинні бути корисними, так як це питання семантики.

What is the difference between "Controls.Add(xyz)" and "this.Controls.Add(xyz)" in ASP.NET (C#)?
None.

How/When does it matter if I am adding the same control onto a webpage but via two (different) aforementioned methods?
It does not matter.

When one should be preferred over the other?
Using this is usually preferred as it is more explicit and helps code readability. But it is a matter of preference.

Reference: this (C# reference)

2
додано

Без різниці. Це надлишковий кваліфікатор, але, як згадував Oded, це для читаності коду.

0
додано

Різниця полягає лише в тексті "це". Дві різні заяви виконують однакові завдання.

Один має бути кращим, ніж інший, виходячи лише зі стандартів кодування для вашої організації. (Мені подобається це найкраще без "цього").

0
додано

Цей покажчик явно вказує на поточний екземпляр.

0
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug