Керівництво c #, ключове слово this
У мові C # є ключове слово this. яке забезпечує доступ до поточного екземпляру класу. Одне з можливих застосувань ключового слова this полягає в тому, щоб вирішувати неоднозначність контексту, яка може виникнути, коли вхідний параметр названий так само, як поле даних даного типу. Зрозуміло, в ідеалі необхідно просто дотримуватися угоди про іменування, яке не може привести до такої неоднозначності.
Щоб продемонструвати наочне застосування ключового слова this, давайте розглянемо наступний приклад:
Constructor chaining
Інше застосування ключового слова this полягає в проектуванні класу, що використовує техніку під назвою зчеплення конструкторів або ланцюжок конструкторів (constructor chaining). Цей шаблон проектування корисний, коли є клас, який визначає кілька конструкторів. З огляду на той факт, що конструктори часто перевіряють входять аргументи на дотримання різних бізнес-правил, виникла потреба в надлишкової логіці перевірки достовірності всередині безлічі конструкторів.
Потік логіки конструкторів в даному прикладі описаний нижче:
Створюється об'єкт за рахунок виклику конструктора, який приймає один аргумент типу byte.
Конструктор передає отримані дані ведучому конструктору, додаючи необхідні додаткові початкові аргументи, які не вказані викликає кодом.
Ведучий конструктор привласнює вхідні дані полів об'єкту.
Управління повертається спочатку викликаного конструктору, який виконує інші оператори коду.
У побудові ланцюжка конструкторів чудово те, що цей шаблон програмування працює з будь-якою версією мови C # і платформою .NET. Однак якщо цільової платформою є .NET 4.0, можна ще більше спростити завдання програмування за рахунок використання необов'язкових аргументів в якості альтернативи традиційним ланцюжках конструкторів.