Parametry typu rodzajowego (Podręcznik programowania C#)
Typ rodzajowy lub definicja metody parametry typu jest symbolem zastępczym dla określonego typu klient określa, kiedy ich wystąpienia zmiennej typu rodzajowego.Klasy rodzajowe, takie jak GenericList<T> wymienionych w Wprowadzenie do generyczne (Podręcznik programowania C#), nie może być używany jako-ponieważ nie jest tak naprawdę typu; jest bardziej przypomina planu dla określonego typu.Aby użyć GenericList<T>, kod klienta musi zadeklarować i utworzyć wystąpienia typu skonstruowane przez określenie argumentu typu w nawiasach ostrych.Typ argumentu dla tej konkretnej klasy mogą być dowolnego typu, uznane przez kompilator.Dowolną liczbę wystąpień konstruowanej typu mogą być tworzone, każdy z nich przy użyciu argumentu innego typu, w następujący sposób:
GenericList<float> list1 = new GenericList<float>();
GenericList<ExampleClass> list2 = new GenericList<ExampleClass>();
GenericList<ExampleStruct> list3 = new GenericList<ExampleStruct>();
W każdym z tych wystąpień GenericList<T>, każde wystąpienie T w klasie zostanie zastąpiony w czasie wykonywania z argumentem typu.Z tego zastąpienia stworzyliśmy trzy oddzielne obiekty typu bezpiecznego i skutecznego przy użyciu definicji jedną klasę.Aby uzyskać więcej informacji, jak to zastąpienie jest wykonywana przez środowisko CLR, zobacz Generyczne w czasie uruchomienia (Podręcznik programowania C#).
Typ parametru nazewnictwa wytycznych
Czy nazwy parametrów typu rodzajowego z nazwy opisowe, chyba, że nazwa pojedynczej litery jest całkowicie self wyjaśniających i opisową nazwę nie będzie dodawać wartości.
public interface ISessionChannel<TSession> { /*...*/ } public delegate TOutput Converter<TInput, TOutput>(TInput from); public class List<T> { /*...*/ }
Należy wziąć pod uwagę za pomocą t jako nazwa parametru typu dla typów z jednego parametru typu pojedynczą literę.
public int IComparer<T>() { return 0; } public delegate bool Predicate<T>(T item); public struct Nullable<T> where T : struct { /*...*/ }
Czy prefiksu nazwy parametrów typu opisowe z "T".
public interface ISessionChannel<TSession> { TSession Session { get; } }
Należy wziąć pod uwagę wskazujące ograniczenia wprowadzane na parametr typu w nazwie parametru.Na przykład parametr ograniczone do ISession może być wywołana TSession.
Zobacz też
Informacje
Generyczne (Podręcznik programowania C#)
Różnice między szablonów języka C++ i C# generyczne (Podręcznik programowania C#)