Wyjaśnione metody rozszerzenia w C#

Wyjaśnione metody rozszerzenia w C#
Metody rozszerzenia są potężną cechą C#, która umożliwia programistom rozszerzenie istniejących typów o nową funkcjonalność bez modyfikowania kodu źródłowego. W tym artykule zbadano metody rozszerzenia C# i sposób ich użycia w tym języku programowania.

Jakie są metody rozszerzenia?

Metody rozszerzenia są rodzajem metody statycznej, która usuwa kłopot z edytowaniem kodu źródłowego do dodawania nowych metod. Oznacza to, że programiści mogą dodawać nowe funkcje do typów takich jak ciągi, liczby całkowite lub jakakolwiek inna klasa niestandardowa bez konieczności tworzenia nowej klasy lub modyfikowania oryginalnej klasy. Metody rozszerzenia są zdefiniowane w klasach statycznych i używają "Ten" Słowo kluczowe Aby określić rozszerzony typ, składnia do tworzenia metody rozszerzenia jest następująca:

Public Static ReturnType MethodName (ten parametr ExtendedType)

// realizacja

Słowo kluczowe publiczne wskazuje, że metoda jest dostępna z dowolnego miejsca w kodzie, statyczne wskazuje, że metoda jest metodą statyczną, a powracanie to typ danych zwracany przez tę metodę. MethodName to nazwa metody rozszerzenia, a to słowo kluczowe, a następnie ExtendedType Parametr wskazuje, że ta metoda rozszerza klasę ExtendedType.

Parametr to parametr przekazany do metody, a implementacja metody jest zapisywana wewnątrz klamrowych klamrów . Ta składnia umożliwia programistom tworzenie nowych metod dla istniejących typów, dzięki czemu kod jest bardziej wielokrotnego użytku i modułowy.

Jak używać metody rozszerzenia do rozszerzenia klasy ciągów

Załóżmy, że chcesz dodać nową metodę do klasy ciągów, która kapitalizuje pierwszą literę ciągu, możesz to zrobić za pomocą metody rozszerzenia za pomocą poniższego kodu:

za pomocą systemu;
Publiczne statyczne rozcięcia klasy statycznych

Publiczne statyczne string capitizeFirStletter (to wejście ciągów)

if (ciąg.IsNullOREMPty (wejście))

Wejście zwrotne;

zwróć char.Toupper (wejście [0]) + wejście.Podłoże (1);


Program klasowy

Statyczne pustka główna (String [] args)

String input = "Hello Linux";
String Result = Wejście.CaplizeFirstletter ();
Konsola.WriteLine (wynik);

Utworzyliśmy nową aplikację konsoli, która zawiera klasę Stringextensions, a w głównej stronie utworzyliśmy zmienną ciągu nazwaną jako wejście i przypisaliśmy jej ciągły ciąg „Hello Linux”. Następnie CAPITIZEFIRSTLETTER Metoda rozszerzenia jest wywoływana w ciągu wejściowego, który kapitalizuje pierwszą literę ciągu. Wreszcie, drukujemy wynik do konsoli za pomocą funkcji „writeLine ()”, więc powinieneś zobaczyć dane wyjściowe „Hello Linux” Podczas realizacji tego programu:

Jak używać metody rozszerzenia do rozszerzenia klasy liczb całkowitych

Załóżmy, że chcesz dodać nową metodę do klasy liczb całkowitych, która określa, czy liczba całkowita jest równa czy dziwna. Możesz to zrobić za pomocą metody rozszerzenia, jak pokazano poniżej:

za pomocą systemu;
Integerextensions klasy publicznej

publiczne statyczne bool iseven (to wejście int)

Wejście Wejście % 2 == 0;


Program klasowy

Statyczne pustka główna (String [] args)

liczba int = 10;
if (liczba.Iseven ())

Konsola.WriteLine ($ "liczba jest parzyste.");

w przeciwnym razie

Konsola.WriteLine ($ "liczba jest dziwne.");


Kod tworzy metodę rozszerzenia dla typu danych INT i Iseven funkcja zwraca true, jeśli liczba całkowita wejściowa jest równa, a w przeciwnym razie fałsz.

W głównym utworzyliśmy numer zmiennej liczby całkowitych i przypisaliśmy ją wartość 10, a następnie wywołujemy metodę rozszerzenia ISEVEN na zmiennej liczbowej, która zwraca prawdziwie, ponieważ 10 jest parzyste. Wreszcie, drukujemy wynik do konsoli za pomocą funkcji „writeLine ()”, więc powinieneś zobaczyć dane wyjściowe „10 jest nawet” Podczas realizacji tego programu:

Jak używać metody rozszerzenia do rozszerzenia interfejsu listy

Powiedzmy, że chcesz dodać nową metodę do Ilist interfejs, który określa, czy lista jest pusta, czy nie, i aby użyć jej metody rozszerzenia, jak pokazano poniżej:

za pomocą systemu;
za pomocą systemu.Kolekcje.Ogólny;
Publiczne listy klas statycznych

public static bool isempty (ta lista ilist)

Lista powrotna == NULL || lista.Count == 0;


Program klasowy

Statyczne pustka główna (String [] args)

Listy numery = nowa lista ();
if (liczby.Jest pusty())

Konsola.Writeline („Lista jest pusta.");

w przeciwnym razie

Konsola.WriteLine ($ „Lista zawiera liczby.Liczba elementy.");


W tym przykładzie stworzyliśmy metodę rozszerzenia Ismpty dla Ilist Typ danych, gdzie t jest parametrem typu ogólnego. Jest pusty Metoda zwraca true, jeśli lista wejściowa jest zerowa lub nie ma żadnych elementów, a Fałsz inaczej. Zasadniczo stworzyliśmy nowy Lista nazywane liczbami, a następnie nazywane Jest pusty Metoda rozszerzenia na liście liczb, która zwraca prawdziwie, ponieważ lista jest pusta. Początkowo drukujemy wynik do konsoli za pomocą funkcji „writeLine ()”, więc powinieneś zobaczyć wyjście "Lista jest pusta" Podczas realizacji tego programu:

Wniosek

Metody rozszerzenia są jedną z najbardziej przydatnych funkcji C#, która pozwala programistom rozszerzyć istniejące typy o nową funkcjonalność bez modyfikowania ich oryginalnego kodu. Metody rozszerzenia są zdefiniowane w klasie statycznej i używają "Ten" Słowo kluczowe, a następnie rozszerzony typ, aby wskazać, że są to metody rozszerzenia. W tym artykule widzieliśmy trzy przykłady metod rozszerzenia, które rozszerzają klasy, liczbę całkowitą i ilist.