55 Stimmen

Instanzmitglieder können in einer statischen Klasse in C# nicht deklariert werden

Ich habe eine public static class und ich versuche, auf Folgendes zuzugreifen appSettings aus meiner app.config-Datei in C# und ich erhalte den im Titel beschriebenen Fehler.

public static class employee
{
    NameValueCollection appSetting = ConfigurationManager.AppSettings;    
}

Wie bringe ich das zum Laufen?

106voto

John Weldon Punkte 38199

Wenn die Klasse als statisch deklariert ist, müssen auch alle Mitglieder statisch sein.

static NameValueCollection appSetting = ConfigurationManager.AppSettings;

Sind Sie sicher, dass Ihre Mitarbeiterklasse statisch sein soll? Sie wollen dieses Verhalten mit Sicherheit nicht. Es wäre wahrscheinlich besser, die statische Einschränkung aus der Klasse und den Mitgliedern zu entfernen.

7voto

tanascius Punkte 51555

Er sagt, was er bedeutet:

Ihre Klasse nicht statisch machen:

public class employee
{
  NameValueCollection appSetting = ConfigurationManager.AppSettings;    
}

oder das Mitglied statisch:

public static class employee
{
  static NameValueCollection appSetting = ConfigurationManager.AppSettings;    
}

7voto

JaredPar Punkte 699699

Es ist nicht zulässig, ein Instanzmitglied in einer statischen Klasse zu deklarieren. Statische Klassen können nicht instanziiert werden, daher macht es keinen Sinn, Instanzmitglieder zu haben (sie wären niemals zugänglich).

4voto

JustSomeGuy Punkte 41

Ich weiß, dieser Beitrag ist alt, aber...

Ich war in der Lage, dies zu tun, mein Problem war, dass ich vergessen, meine Eigenschaft statisch zu machen.

public static class MyStaticClass
{
    private static NonStaticObject _myObject = new NonStaticObject();

    //property
    public static NonStaticObject MyObject
    {
        get { return _myObject; }
        set { _myObject = value; }
    }
}

1voto

Adam Markowitz Punkte 12381

Haben Sie versucht, die "statische" Speicherklasse zu verwenden, ähnlich wie?

public static class employee
{
    static NameValueCollection appSetting = ConfigurationManager.AppSettings;    
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X