Zugriff auf statische Member über Instanz

Danielku15

Erfahrenes Mitglied
Hi Leute.
Bei Java ist es ja möglich über die Instanz einer Klasse auf die statischen Member zuzugreifen. Aber nicht in C#. Gibts da ein Workaround (ohne einen Andersnamigen nicht statischen Getter zu erstelllen)

Beispiel:
C#:
public class NumberType
{
    private static int _iMinValue = -10;
    public static int MinValue
    {
        get
        {
            return _iMinValue;
        }
    }
}
...
NumberType.MinValue // Möglich

NumberType oFirst = new NumberType();
oFirst.MinValue; // Nicht möglich

Ideen?

Gruß Daniel
 
Hi

Der Sinn von statischen Member ist ja, dass man nicht extra eine Instanz erzeugen muss.
Ich finde nicht wirkflich eine Anwendungsfall :confused:

Wenn du das jedoch wirklich benötigst, kommst du über Reflection an die Properties.
Schau dir mal die Klassen Type und PropertyInfo an.
 
Sinn ist folgender.
Ich habe eine abstrakte Basisklasse DbDataType (Datenbank Datentyp) mit dem Attribut CheckFunktions. (Dictionary Key: String --> Zielsprache,Dictionary Value: String --> Code für die Methode). Bei jedem DatenbankTyp der geerbt wird, (z.B. MySqlVarChar) wird im statischen Member ein neuer Eintrag zum statischen Member hinzugefügt (Statischer Konstruktor) Zum Beispiel ein PHP Code. Diese sind jedoch nur generell für den Typ gültig und ändern sich nicht pro Instanz.Wenn ich jetzt 50 Datentypen-Instanzen erstelle, hab ich auch 50 Collections mit gleichem Inhalt.

Notfalls muss ich einen andersnamigen Getter implementieren.
 
probiers doch mal so:
C#:
    internal class Test
    {
        public Test()
        {

        }

        public int TestVar
        {
            get { return testStaticVar; }
        }

        private static int testStaticVar;

        public static int TestStaticVar
        {
            get { return testStaticVar; }
            set { testStaticVar = value; }
        }

    }
 
Wie gesagt das wäre meine Notlösung und geht wahrscheinlich nicht anders. Mich wunderts weils bei Java funktioniert.
Trotzdem danke.
 
Zurück