Announcement

Collapse
No announcement yet.

Frage zu Generics

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Frage zu Generics

    Hallo zusammen.

    Ich habe in meinem Projekt folgende Funktion:

    Code:
    private static int GetNextIntValue(ref int i, string[] a)
    {
        for (int x = i + 1; ; x++)
        {
            if (!String.IsNullOrEmpty(a[x]))
            {
                i = x + 1;
                return int.Parse(a[x]);
            }
        }
    }
    Diese Funktion habe ich jetzt mehrfach für verschiedene DatenTypen (GetNextDateTimeValue, GetNextDoubleValue, etc.)

    Ich habe mir gedacht, ob man diese Funktion nicht durch Generics ersetzen könnte und habe versucht die Function
    zu ersetzen.

    Code:
    private static T GetNextValue<T>(ref int i, string[] a)
    {
        ...
    }
    Mein Problem ist jetzt, dass ich die Methode parse nicht auf T ausführen kann. An die Methode werden aber definitiv
    nur Datentypen übergeben, die auch eine Parse-Methode besitzen.

    Ich habe auch einen direkten Cast versucht [return (T)(lineParts[x]);], aber das läst der Compiler auch nicht zu.

    Meine Frage ist nun, kann ich dieses Problem überhaupt mit Generics lösen oder sind Generics an dieser Stelle ungeeignet?

    Grüße
    Jörg

  • #2
    Hallo!

    Versuchs mal mit dem Datentyp 'object'. In .NET basiert ja alles auf 'object' und somit kannst du 'object' auch alles zuweisen (DateTime, int, string, Control, ...).

    Hoffe das hilft dir weiter!
    *-- robert.oh. --*

    Comment


    • #3
      Hallo,

      ich glaube, ich hatte einmal ein ähnliches Problem. Die Lösung für Generics klappt u.U. nicht, wenn es sich um Werttypen handelt. Vielleicht helfen Dir die verschiedenen Gesichtspunkte und meine Lösung unter where bei generischer Methode für Zahlen?

      Gruß Jürgen

      Comment

      Working...
      X