Метод розширення (англ. extension method) — у програмуванні синтаксичний цукор, що полягає в додаванні до вже наявного класу. Введено в C# 3.0. Не вводячи в мову нової функціональності, робить код виразнішим.
Було:
string x = "якийсь рядок"; string y = Utility.Reverse(x); SomeObject z = HelperClass.Operation2(HelperClass.Operation1(x, arg1), arg2);
Стало:
string x = "якийсь рядок"; string y = x.Reverse(); SomeObject z = x.Operation1(arg1).Operation2(arg2);
Синтаксис C#
public static class Utility { public static string Reverse(this string input) { char[] chars = input.ToCharArray(); Array.Reverse(chars); return new String(chars); } }
У C#, якщо є і вбудований метод, і розширення, пріоритет надається вбудованому методу.
Відмінність від спадкування
Успадкування | Метод розширення |
---|---|
Практично неможливо застосовувати на чужих фреймворках і чужому коді зі складною структурою | Можна застосовувати для будь-якого коду |
Можна застосовувати для об'єктів, від яких можна успадковувати | Можна застосовувати для об'єктів будь-якого типу (в том числі sealed , яким є int або string в C#) |
Буває віртуальний | Не буває віртуальний |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Metod rozshirennya angl extension method u programuvanni sintaksichnij cukor sho polyagaye v dodavanni do vzhe nayavnogo klasu Vvedeno v C 3 0 Ne vvodyachi v movu novoyi funkcionalnosti robit kod viraznishim Bulo string x yakijs ryadok string y Utility Reverse x SomeObject z HelperClass Operation2 HelperClass Operation1 x arg1 arg2 Stalo string x yakijs ryadok string y x Reverse SomeObject z x Operation1 arg1 Operation2 arg2 Sintaksis C public static class Utility public static string Reverse this string input char chars input ToCharArray Array Reverse chars return new String chars U C yaksho ye i vbudovanij metod i rozshirennya prioritet nadayetsya vbudovanomu metodu Vidminnist vid spadkuvannyaUspadkuvannya Metod rozshirennya Praktichno nemozhlivo zastosovuvati na chuzhih frejmvorkah i chuzhomu kodi zi skladnoyu strukturoyu Mozhna zastosovuvati dlya bud yakogo kodu Mozhna zastosovuvati dlya ob yektiv vid yakih mozhna uspadkovuvati Mozhna zastosovuvati dlya ob yektiv bud yakogo tipu v tom chisli sealed yakim ye int abo string v C Buvaye virtualnij Ne buvaye virtualnij