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