Szablony klas
Stronę tą wyświetlono już: 3096 razy
Wstęp
Szablony są niezwykle ważnym elementem programowania, umożliwiają one dynamiczne dostosowanie kodu klasy do naszych potrzeb, a to dynamiczne dostosowanie wykonywane jest w trakcie jego kompilacji. Umożliwiają one opisanie za pomocą jednego kodu klas, czy metod klas, które będą się różniły jedynie typem danych w nich zawartych.
Przykład implementacji szablonu klasy
Przykład implementacji klasy szablonowej:
Jak widać w C# nie jest konieczne użycie słowa kluczowego template tak jak to miało miejsce w przypadku C++, wystarczy bowiem podać po słowie kluczowym class listę typów używanych w klasie, po czym możliwe jest jeszcze zdefiniowanie dodatkowych warunków, jakie dane typy muszą spełniać. W powyższym przykładzie zaznaczono, że T musi być typu wartościowego (czyli strukturą). można też wyszczególnić interfejsy, po których dana klasa musi dziedziczyć. I tutaj warto wyróżnić dwa typy interfejsów: IComparable i IConvertible. Jeżeli chcesz zaznaczyć, że dany typ musi wykorzystywać operatory porównania, to musisz do listy warunków dodać właśnie interfejs IComparable, natomiast gdy chcesz, aby dany typ obsługiwał metody związane z konwersją na typy proste, musisz dodać dziedziczenie po interfejsie IConvertible.
Można też wymusić, aby podany typ obsługiwał konstruktor bezparametrowy w następujący sposób:
Można też wymusić dziedziczenie jednego typu po drugim:
Tytuł:
C# 10. Programowanie. Tworzenie aplikacji Windows, internetowych i biurowych
Autor:
Ian Griffiths
Tytuł:
C# 10 i .NET 6 dla programistów aplikacji wieloplatformowych. Twórz aplikacje, witryny WWW oraz serwisy sieciowe za pomocą ASP.NET Core 6, Blazor i EF Core 6 w Visual Studio 2022 i Visual Studio Code. Wydanie VI
Autor:
Mark J. Price
Tytuł:
Visual Studio 2022, C# i .NET. Programowanie kontrolek
Autor:
Łukasz Sosna
Tytuł:
C# 10. Leksykon kieszonkowy
Autor:
Joseph Albahari, Ben Albahari
Tytuł:
Wzorce projektowe w .NET Core 3. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F#
Autor:
Dmitri Nesteruk
Tytuł:
Jak pisać świetne gry 2D w Unity. Niezależne programowanie w języku C#
Autor:
Jared Halpern
Tytuł:
C# 9.0 w pigułce
Autor:
Joseph Albahari
Tytuł:
C# 9.0. Leksykon kieszonkowy
Autor:
Joseph Albahari, Ben Albahari
Tytuł:
C# 8.0. Kompletny przewodnik dla praktyków. Wydanie VII
Autor:
Mark Michaelis
Tytuł:
C# 8.0 w pigułce
Autor:
Joseph Albahari, Eric Johannsen