Метод розширення
Метод розширення (англ. 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#) |
Буває віртуальний | Не буває віртуальний |
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.