Heim > Backend-Entwicklung > C++ > Wie kann ich generische Methoden auf bestimmte numerische Typen in .NET einschränken?

Wie kann ich generische Methoden auf bestimmte numerische Typen in .NET einschränken?

Patricia Arquette
Freigeben: 2025-02-01 23:21:11
Original
201 Leute haben es durchsucht

How Can I Constrain Generic Methods to Specific Numeric Types in .NET?

generische Methoden auf bestimmte numerische Typen in .NET

einschränken

Dieser Artikel befasst sich mit der Herausforderung, generische Methodenargumente auf bestimmte numerische Typen in .NET einzuschränken, z. B. Int16, Int32, Int64, UInt16, UInt32 und UInt64. 🎜>

modern .net (7 und später):

.NET 7 führt die

-Schinschnittstelle ein und umfasst alle numerischen Typen. Verwenden Sie für ganzzahlige Typen INumber<T>. Dies liefert eine kurze Lösung: IBinaryInteger<T>

static bool IsPositiveInteger<T>(T value) where T : IBinaryInteger<T>
{
    return value > T.Zero;
}
Nach dem Login kopieren

ältere .NET-Versionen (Pre-.NET 7):

Vor .NET 7 waren direkte Einschränkungen für bestimmte numerische Typen nicht verfügbar. Zu den Workarounds gehören:

1. Fabrikmuster:

Verwenden Sie eine Fabrik, um Instanzen einer benutzerdefinierten Taschenrechnerklasse zu erstellen. Dieser Taschenrechner würde die spezifischen numerischen Typvorgänge verarbeiten und Flexibilität für verschiedene Typen bieten.

2. Richtlinienbasierter Ansatz:

Richtlinienklassen definieren, die eine gemeinsame Schnittstelle implementieren. Die generische Methode akzeptiert eine Richtlinieninstanz als Parameter, wodurch die Instanziierung mit verschiedenen numerischen Typen ermöglicht wird. Dieser Ansatz fördert die sauberere Trennung von Bedenken.

Diese überarbeitete Erklärung behält die ursprünglichen Informationen bei gleicher Verbesserung der Klarheit und des Flusses.

Das obige ist der detaillierte Inhalt vonWie kann ich generische Methoden auf bestimmte numerische Typen in .NET einschrä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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage