c#generische Methodenbeschränkung kann nur auf numerische Typen beschränkt sein?
Einführung
Freizeiten ermöglichen es den Programmierern, die Typen zu definieren, die an mehreren Datentypen betrieben werden können. Manchmal kann es jedoch erforderlich sein, die Art des generischen Typs zu begrenzen. In dieser Frage wird untersucht, ob es eine Methode gibt, die die generischen Parameter nur auf bestimmte Werttypen beschränken kann. Die Einschränkungen von generischen Typgrenzen
c#
Schlüsselwörter ermöglichen es Entwicklern, die Einschränkungen generischer Parameter anzugeben. Die Einschränkung kann verwendet werden, um sicherzustellen, dass die Typparameter eine bestimmte Schnittstelle implementieren oder die spezifische Basisklasse erben. Die vorhandene numerische Schnittstelle
where
Leider bietet C# keine Schnittstelle, die sich auf die Typen INT16-, INT32-, INT64-, UINT16-, UINT32- und UINT64 -Typen spezialisiert hat. Daher kann das Schlüsselwort nicht direkt verwendet werden, um die generischen Parameter in diese spezifischen Typen einzuschränken.
Alternative Methode
als Alternative beachten Sie die folgenden Methoden:
where
Die Schnittstelle : Net 7 hat die -Schrobtikeln in den Namen
eingeführt. Diese Schnittstelle zeigt an, dass alle binären Ganzzahltypen verwendet werden können, um den Typparameter auf einen ganzzahligen Typ zu begrenzen.Werksmodus
IBinaryInteger
strategische Klasse : Eine andere Entscheidung besteht darin, die Implementierung öffentlicher Schnittstellen zu verwenden und eine strategische Klasse bereitzustellen, die eine spezifische Implementierung bietet. Diese Strategien können an die Matrix übergeben werden, um die Unterstützung verschiedener numerischer Typen zu ermöglichen. System.Numerics
IBinaryInteger<T>
Calculator<T>
Schnittstelle, Werksmodus und Strategie alternative Methode verwenden, um die erforderlichen Funktionen zu erreichen. Das obige ist der detaillierte Inhalt vonKönnen C# Generische Methodenbeschränkungen die Typ -Argumente auf bestimmte numerische Typen einschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!