C # wo das Schlüsselwort [doppelt]

8

Im folgenden Codeabschnitt (C # 2.0):

%Vor%

Beispiel für ein Inheritor:

%Vor%

Was macht das where Schlüsselwort?

    
Carra 05.05.2010, 14:23
quelle

6 Antworten

14

es ist eine Einschränkung für Generika

MSDN

, so dass die new () - Einschränkung besagt, dass sie einen öffentlichen parameterlosen Konstruktor haben muss

    
Pharabus 05.05.2010, 14:25
quelle
7

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.

    
Jeff Sternal 05.05.2010 14:25
quelle
4

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.

    
Joel 05.05.2010 14:26
quelle
2

Dies ist eine allgemeine Einschränkung . Dies bedeutet, dass der generische Typ T einen Zero-Parameter-Konstruktor implementieren muss.

    
Oded 05.05.2010 14:26
quelle
1

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 muss

Ссылка

    
Mauro 05.05.2010 14:27
quelle
0

Das bedeutet, dass das T einen öffentlichen Standardkonstruktor haben muss.

    
Codism 05.05.2010 14:25
quelle

Tags und Links