Es gibt eine Einschränkung für den generischen Typparameter T
.
Die Einschränkung new()
gibt an, dass T einen öffentlichen Standardkonstruktor haben muss.
Sie können auch festlegen, dass der Typ eine Klasse (oder umgekehrt eine Struktur) sein muss, dass er eine bestimmte Schnittstelle implementieren muss oder dass er von einer bestimmten Klasse abgeleitet sein muss.
Die where-Klausel wird verwendet, um Einschränkungen für die Typen anzugeben, die als Argumente für einen in einer allgemeinen Deklaration definierten Typparameter verwendet werden können. Beispielsweise können Sie eine generische Klasse, MyGenericClass, so deklarieren, dass der Typparameter T die IComparable-Schnittstelle implementiert:
%Vor%In diesem speziellen Fall heißt es, dass T einen Standardkonstruktor implementieren muss.
Dies ist eine allgemeine Einschränkung . Dies bedeutet, dass der generische Typ T
einen Zero-Parameter-Konstruktor implementieren muss.
Das Where-Schlüsselwort ist im Grunde eine Einschränkung für die Objekte, mit denen die Klasse arbeiten kann.
von MSDN übernommen "Die new () - Einschränkung gibt dem Compiler die Information, dass jedes übergebene Typargument einen barrierefreien parameterlosen Konstruktor"
haben mussTags und Links c#