Die Zweck der Verwendung von Generika ist eine generische Typdeklaration, die für alle Typen funktioniert, nicht nur für einige.
Ich nehme an, Sie möchten eine Operation nur für Nummern. Sie könnten eine generische Einschränkung auf Klasse hinzufügen, wie folgt:
public class MyType<T> where T: struct
{
public T getValue() { return value; }
}
dies jedoch auch Arten ermöglichen, die das allgemeine Argument void
haben die GetValue
-Methode haben, wie void
ist auch ein struct
. Das tut aber nicht weh, da man keinen Typ MyType<void>
konstruieren kann, wie Lee auch erwähnt hat.
Des Weiteren wurde leider keine gemeinsame Schnittstelle, die alle numerischen Typen implementieren und die als generische Einschränkung verwendet werden. Die einzige Lösung ist für jede Art ein Verfahren zu haben, so GetDouble, getint, und so weiter
Meinen Sie, dass für einen bestimmten Typ T, zum Beispiel String, Sie getValue wollen existieren nicht? –
Ja, mit Beispiel. Ich brauche diese Methode für int, float, bool, aber nicht für void! – CDZ
Was meinst du mit hinzufügen oder löschen? Es spielt keine Rolle, ob Sie eine generische Klasse haben oder nicht, definieren Sie Klassenmethoden und diese Methoden zur Verfügung stehen, Generika Methoden grundsätzlich ermöglichen, mit verschiedenen Arten arbeiten – john