Sdílet prostřednictvím


Obecné parametry typu (Příručka programování C#)

Obecný typ nebo definice metody představuje parametry typu pro určitý typ klient Určuje, při jejich vytvoření instance proměnné obecného typu.Třídy obecný, například GenericList<T> v Úvod do Generics (Příručka programování C#), nelze použít jako-protože není skutečně typ; je více o jakousi typu.Použití GenericList<T>, kód klienta musí deklarovat a konkretizovat vyrobeno typu zadáním argumentu typ uvnitř ostrých závorek.Typ argumentu pro danou třídu může být libovolný typ rozpoznán kompilátorem.Libovolný počet instancí typu vyrobeno lze vytvořit, každý z nich používat jiný typ argumentu, takto:

GenericList<float> list1 = new GenericList<float>();
GenericList<ExampleClass> list2 = new GenericList<ExampleClass>();
GenericList<ExampleStruct> list3 = new GenericList<ExampleStruct>();

V každém z těchto instancí GenericList<T>, každý výskyt T ve třídě bude nahrazeno za běhu v argumentu typ.Z této náhrady jsme vytvořili tři samostatné typu bezpečné a účinné objektů pomocí jediné třídy definice.Další informace o jak toto nahrazení provádí CLR, viz Generics v době spuštění (Příručka programování C#).

Pokyny pro pojmenování typ parametru

  • Proveďte názvu obecný typ parametrů pomocí popisných názvů, je zcela self vysvětlující jedno písmeno název a hodnotu popisný název nelze přidat.

    public interface ISessionChannel<TSession> { /*...*/ }
    public delegate TOutput Converter<TInput, TOutput>(TInput from);
    public class List<T> { /*...*/ }
    
  • Zvažte t pomocí jako název parametru typu u typů s jeden parametr typu jedno písmeno.

    public int IComparer<T>() { return 0; }
    public delegate bool Predicate<T>(T item);
    public struct Nullable<T> where T : struct { /*...*/ }
    
  • Proveďte prefix zadejte popisné názvy parametrů s "T".

    public interface ISessionChannel<TSession>
    {
        TSession Session { get; }
    }
    
  • Zvažte označující omezení uváděny na parametr typu jménem parametr.Například parametr omezen na ISession může být volána TSession.

Viz také

Referenční dokumentace

Generics (Příručka programování C#)

Rozdíly mezi šablonami jazyka C++ a C# Generics (Příručka programování C#)

System.Collections.Generic

Koncepty

Příručka programování C#