2010-12-30 14 views
36

Co to są leki generyczne w języku C#, zilustrowane prostym przykładem? Jakie są powiązane artykuły lub strony internetowe na ten temat?Co to są generics w C#?

Odpowiedz

94

Generics to technika pisania kodu dla klasy bez określania typów danych, na których działa klasa.

Użytkownik określa typ danych podczas deklarowania wystąpienia klasy ogólnej. Dzięki temu klasa ogólna może być wyspecjalizowana dla wielu różnych typów danych, a jednocześnie musi tylko napisać klasę.

Doskonałym przykładem jest wiele klas kolekcji w .NET. Każda klasa kolekcji ma własną implementację tworzenia i zarządzania kolekcją. Ale używają generycznych, aby umożliwić swojej klasie pracę z kolekcjami dowolnego typu.

http://msdn.microsoft.com/en-us/library/ms379564(VS.80).aspx

+11

+1 za próbę opracowania i ułatwiając op zrozumieć! –

+0

thnx za wyjaśnienie. Mam teraz podstawowy pomysł na temat leków generycznych. – Karthik

+0

Punkty wymienione w odpowiedzi odnoszą się również do poszczególnych metod. – Sai

6

Jest to naprawdę nic specjalnego rodzajowych w języku C#. C# po prostu lubi dobrze znane pojęcia i nazywa je czymś innym (np. Procedury wywoływania "statyczne metody" lub wywoływanie flatMap "SelectMany"). W tym konkretnym przypadku, Generics są po prostu C# na nazwę 1 parametryczny polimorfizm.

+2

Muszę zapamiętać to, by użyć go do odpowiedzi na wywiady .. Myślę, że to zdmuchnę ich skarpetki .. (Nie mam pojęcia co to jest powiedziałeś, ale brzmi świetnie!) – ppumkin

1

Od MSDN:

Leki generyczne są najpotężniejszym cechą C#. Generics pozwala na zdefiniowanie struktur danych bezpiecznych dla typów bez konieczności podawania rzeczywistych typów danych . Powoduje to znaczny wzrost wydajności i wyższy kod jakości , ponieważ można ponownie wykorzystać algorytmy przetwarzania danych bez powielania kodu specyficznego dla typu. W koncepcji generics są podobne do szablonów C++, ale są drastycznie różne w implementacji i możliwościach .

https://msdn.microsoft.com/en-us/library/ms379564.aspx