Announcement

Collapse
No announcement yet.

Konstante einer Klasse über Variableninhalt aufrufen

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

  • Konstante einer Klasse über Variableninhalt aufrufen

    Hallo,

    Ich weiß nicht genau,wie man es nennt, daher gleich ein Beispiel.
    Ich möchte eine Klassen-Konstante variabel aufrufen/nutzen. Grundlegend sieht das ja bspw. so aus:
    [highlight=csharp]Example.Class.Constant;[/highlight]
    Nun möchte ich aber die entsprechende Konstante per Parameter übergeben:
    [highlight=csharp]Example.Class.{Parameter};[/highlight]
    Das ist so natürlich verkehrt erklärt aber glaube ich, was ich vorhabe.

    Gibt es eine Möglichkeit, dies umzusetzen?

    Danke
    PHP rocks!
    Eine Initiative der PHP Community

  • #2
    Warum legtst du in der Klasse nicht ein statisches
    https://msdn.microsoft.com/de-de/lib...vs.110%29.aspx
    an und eine statische Methode, der du den Key übergibst, und die den Value zurückliefert
    Christian

    Comment


    • #3
      Hallo Christian,

      Weil die Klasse nicht von mir ist, sondern in einer fertigen DLL liegt und ich diese nicht anpassen kann. ;-)
      PHP rocks!
      Eine Initiative der PHP Community

      Comment


      • #4
        Das ist schlecht.
        Da müsstest du eine eigene Klasse vorsetzen oder eine neue Klasse ableiten.

        Die hat dann das Dictionary und muss dann wohl leider eine Konstruktion wie
        if Konstante1 dann
        -> return Example.Class.Constant1;
        usw
        machen.
        Ev. kann sie per Reflection die in der Urspungsklasse vorhandenen Werte auslesen.
        Christian

        Comment


        • #5
          Die hat dann das Dictionary und muss dann wohl leider eine Konstruktion wie
          if Konstante1 dann
          -> return Example.Class.Constant1;
          usw
          machen.
          Ev. kann sie per Reflection die in der Urspungsklasse vorhandenen Werte auslesen.
          Das lässt sich glaube ich sinnvoll kombinieren (Dictionary&Reflection)
          [HIGHLIGHT=C#]
          public static Dictionary<string, object> GetConstantValuesFromTypeAsDictionary(Type type)
          {
          var fields = type.GetFields(BindingFlags.Public| BindingFlags.Static| BindingFlags.FlattenHierarchy);
          return fields.Where(x => x.IsLiteral && !x.IsInitOnly).ToDictionary(x => x.Name, x => x.GetRawConstantValue());
          }[/HIGHLIGHT]

          Comment


          • #6
            Gut, das du da bist
            Christian

            Comment

            Working...
            X