Heim > Backend-Entwicklung > C++ > Wie kann ich generische Methodenargumente auf numerische Typen in C#beschränken?

Wie kann ich generische Methodenargumente auf numerische Typen in C#beschränken?

DDD
Freigeben: 2025-02-01 23:16:09
Original
890 Leute haben es durchsucht

How Can I Restrict Generic Method Arguments to Numeric Types in C#?

c#generische Methode Numerischer Typ -Grenze

Die generische Methode in C#ist ein leistungsstarkes Werkzeug für abstrakte und komplexe Operationen über verschiedene Typen hinweg. Herkömmliche Schlüsselwörter ermöglichen jedoch nur Schnittstellen oder Vererbungsbeschränkungen. Diese Grenze kann zu einem Problem werden, wenn Sie den Parameter auf einen bestimmten Typ beschränken möchten (z. B. numerischer Basiselementtyp).

.NET 7 eingeführt iBinaryInteger where

Mit der Entstehung von .NET 7 erschien eine Lösung für dieses Problem: System.Numerics namens Schnittstelle im Namensraum. Diese Schnittstelle enthält alle Ganzzahl -Typen, mit denen Sie die generische Methode als INT16, INT32, INT64, UINT16, UINT32 und UINT64 einschränken können.

Verwenden Sie IBINYInTEger

Implementierung von IntegerFunction IBinaryInteger<Tself>

beispielsweise, wenn man die folgende berücksichtigt, wenn der übergebene Parameter positiv ist, kehren Sie true zurück.

Beispiel verwendet

IntegerFunction

Verwenden des neuen können wir leicht die positive und negative Natur verschiedener ganzzahliger Typen überprüfen:
static bool IntegerFunction<T>(T value) where T : IBinaryInteger<T>
{
    return value > T.Zero;
}
Nach dem Login kopieren

History Review

Vor der Einführung von fehlt C#keine explizite Unterstützung, um die genetischen Parameter als spezifischen numerischen Typ zu begrenzen. Stattdessen können Programmierer dazu beitragen, Methoden wie Fabrikmodelle oder Strategie zu ändern. Diese Methoden erfordern jedoch, dass Benutzer zusätzlichen Code schreiben und die Komplexität erhöhen. IntegerFunction

Das obige ist der detaillierte Inhalt vonWie kann ich generische Methodenargumente auf numerische Typen in C#beschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage