Heim >Backend-Entwicklung >C++ >Wie kann ich generische Methodenargumente auf numerische Typen in C#beschränken?
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).
where
Mit der Entstehung von .NET 7 erschien eine Lösung für dieses Problem: System.Numerics namens
Implementierung von IntegerFunction IBinaryInteger<Tself>
beispielsweise, wenn man die folgende berücksichtigt, wenn der übergebene Parameter positiv ist, kehren Sie true zurück.
IntegerFunction
<code class="language-csharp">static bool IntegerFunction<T>(T value) where T : IBinaryInteger<T> { return value > T.Zero; }</code>
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!