Verwendung von where (Generic Type Constraint)

Verwendung Von Where Generic Type Constraint



Generische Typeinschränkungen in C# ermöglichen es Entwicklern, den Satz von Typen zu definieren, die ein generischer Typparameter darstellen kann. Diese Funktion ermöglicht es dem Compiler, Typsicherheit zu erzwingen, und verhindert Fehler, die während der Laufzeit auftreten können. Eine der am häufigsten verwendeten Einschränkungen ist die 'Wo' Beschränkung, wird dieser Artikel erklären, was die 'Wo' Constraint in C# ist und wie Sie es in Ihrem Code verwenden.

Was ist die „Wo“-Einschränkung?

Der 'Wo' Constraint ist eine generische Typeinschränkung in C#, mit der Entwickler den Typparameter angeben können, den ein generischer Typ darstellen kann. Die Einschränkung wird mit angegeben 'Wo' Schlüsselwort, gefolgt vom Typparameter und der Einschränkung, der Syntax für die Verwendung von 'Wo' Einschränkung ist wie folgt:

öffentliche Klasse Klassenname < T > wo t : Zwang

{

// Klassenimplementierung

}

Hier das 'Klassenname' stellt den Namen der Klasse mit einem generischen Typparameter dar 'T' . Der 'Wo' Das Schlüsselwort gibt die Einschränkung für den Typparameter an, und das Schlüsselwort 'Zwang' ist der Typ, den der Typparameter darstellen muss.







Nehmen wir ein Beispiel für eine generische Klasse, die einen Typparameter akzeptiert und den Mindestwert aus einem Array von Werten zurückgibt. Hier verwendet der Code die 'Wo' Einschränkung, um anzugeben, dass der Typparameter ein numerischer Typ sein muss:



mit System ;

öffentliche Klasse MinValue < T > wo t : Struktur , Vergleichbar , IConvertible

{

öffentliches T GetMinValue ( T [ ] Reihe )

{

Wenn ( Reihe == Null || Reihe. Länge == 0 ) {

werfen Sie eine neue ArgumentException ( 'Array darf nicht null oder leer sein' ) ;

}

Tmin = Reihe [ 0 ] ;

für ( int ich = 1 ; ich < Reihe. Länge ; ich ++ ) {

Wenn ( Reihe [ ich ] . Vergleichen mit ( Mindest ) < 0 ) {

Mindest = Reihe [ ich ] ;

}

}

zurückkehren Mindest ;

}

}

öffentliches Klassenprogramm

{

öffentlich statisch Leere Hauptsächlich ( )

{

int [ ] intArray = { 1 , 2 , 3 , 4 , 5 } ;

Mindestwert < int > intMinValue = neuer MinWert < int > ( ) ;

int intMin = intMinValue. GetMinValue ( intArray ) ;

Konsole. WriteLine ( 'Mindestwert von intArray: {0}' , intMin ) ;

doppelt [ ] doubleArray = { 1.1 , 2.2 , 3.3 , 4.4 , 5.5 } ;

Mindestwert < doppelt > doubleMinValue = neuer MinWert < doppelt > ( ) ;

doppelt doppeltMin = doubleMinValue. GetMinValue ( doubleArray ) ;

Konsole. WriteLine ( 'Mindestwert von doubleArray: {0}' , doppeltMin ) ;

}

}

Hier haben wir eine generische Klasse definiert „MinWert“ die einen Typparameter akzeptiert 'T' und gibt den Mindestwert aus einem Array von Werten zurück. Als nächstes haben wir die verwendet 'Wo' Einschränkung, um anzugeben, dass der Typparameter eine Struktur sein muss, implementieren Sie die IComparable-Schnittstelle und implementieren Sie die IConvertible-Schnittstelle. Diese Einschränkung stellt sicher, dass nur numerische Typen als Typparameter zulässig sind.



  Form, Rechteck Beschreibung automatisch generiert





Abschluss

Der 'Wo' Constraint in C# ist eine leistungsstarke Funktion, mit der Entwickler Typsicherheit erzwingen und Fehler während der Laufzeit verhindern können. Mithilfe dieser Einschränkung können Sie den Satz von Typen angeben, die ein generischer Typparameter darstellen kann. Dieser Artikel hat einen Überblick über die 'Wo' Constraint in C# und demonstrierte, wie man es mit einem Code verwendet.