Udostępnij za pośrednictwem


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#)

System.Collections.Generic

Koncepcje

Podręcznik programowania C#