C# Statische Klasse mit Enum

Ich habe eine knifflige Frage, die wurde verwirren Sie mich für eine Weile. Ich habe den folgenden code Erklärung...

namespace ESEGURCI.WEB.BusinessLogicLayer.Commons
{
    public static class ParameterUtilities
    {
        public enum ParameterEnum
        {
            MAX_LOGIN_ATTEMPTS,
            AUDIT_MODIFICATIONS
        }
    }
}

und ich rufe den code so wie "ParameterUtilities.ParameterEnum.MAX_LOGIN_ATTEMPTS" Problem ist, sobald jeder Vollmond bekomme ich die Fehlermeldung "der Objektverweis wurde nicht auf eine Instanz eines Objekts" auf dieser Linie... Es ist wie der code funktioniert nur 99,9% der Zeit...

Das einzige, was mir einfällt, ist, dass seit dem enum ein Werttyp ist, dass es kann eine chance sein, dass die enum ist null, wenn die statische Klasse aufgerufen wird... Aber ich finde keine Dokumentation über dieses Verhalten...

Kann jemand mich aufklären, warum dies geschieht? Ich weiß, ich sollte wahrscheinlich entfernen Sie den enum aus der statischen Klasse, und erklären die enum als standalone, aber ich würde gerne wissen, warum dies geschieht zuerst...

Dank,
S

Update

Ok, an alle, die mehr verlangen-code, der folgende ist die volle Funktion, wo der Fehler Auftritt...

    public static int GetPageSize(int companyId)
    {
        int pageSize = 0;

        //error happens bellow this line

        ESEGURCI.WEB.BusinessLogicLayer.Entities.Parameter parameter = ESEGURCI.WEB.BusinessLogicLayer.Entities.Parameter.GetParameter(ParameterUtilities.ParameterEnum.AUDIT_MODIFICATIONS.ToString(), companyId);

        //error happens above this line

        int.TryParse(parameter.Value, out pageSize);

        return pageSize;
    }
Warum nehmen wir nicht die Enum definition außerhalb der Klasse?
Diese Zeile kann nicht werfen mit NullReference, sind Sie sicher, dass der Fehler nicht in anderen Aussagen? bitte zeig mehr code, wie du mit enum-Wert
Die Ausnahme ist entstanden aus etwas, was sonst in die betreffende Zeile, enums kann nicht null sein. Können Sie uns zeigen, die eigentlichen code-block, wo die exception Auftritt ?
Dies kann nicht werfen, null ref exception. Durch die Linie, die Sie erwähnt haben, bedeutet es, dass Sie abholen eine der 2 möglichen Werte für diesen Typ. Diese Linie werfen, null ref exception ist ähnlich wie die Nummer 1 oder die Zeichenfolge "C# ist eine Sprache" wirft, null ref exception. Auch "der Objektverweis wurde nicht auf eine Instanz eines Objekts" bedeutet, dass Sie versuchen, Zugriff auf einen ref-Typ-Objekt, das nicht initialisiert wurde, oder ein Wert zugewiesen. Post code.
Gibt es möglicherweise Problem in GetParameter. Setzen Sie diese Anweisung in einem try-block und fangen Sie die Ausnahme. Auch, wenn Sie die Ausnahme, überprüfen Sie den Wert des enum-und Sie wissen, dass die enum ist nicht das Problem.

InformationsquelleAutor bastos.sergio | 2012-09-04

Schreibe einen Kommentar