csharp / intermediate
Snippet
Einschränken von Typparametern mit Generic Constraints
Generic Constraints ermöglichen es, die Typen einzuschränken, die als Argumente für einen Typparameter verwendet werden können. Durch 'where T : class, new()' stellen wir sicher, dass T ein Referenztyp ist und einen öffentlichen parameterlosen Konstruktor besitzt.
snippet.csharp
1
2
3
4
5
6
7
public class Repository<T> where T : class, new(){public T CreateInstance(){return new T();}}
Erklärung
1
where T : class
Stellt sicher, dass der Typparameter T ein Referenztyp sein muss (Klasse, Interface, Delegat oder Array).
2
new()
Gibt an, dass der Typ T einen öffentlichen parameterlosen Konstruktor haben muss, was die Verwendung von 'new T()' ermöglicht.