4 Stimmen

Beste Möglichkeit, geschützte Felder freizulegen

Ich habe eine Basisklasse wie diese:

 public class BaseModalCommand
 {

    protected object m_commandArgument;
    protected int m_commandID;
    protected int m_enableUIFlags;

    public virtual void OnIdle()
    {
    }

    public virtual void OnResume()
    {
    }

    public virtual void OnStart(int commandID, object argument)
    {
    }

    public virtual void OnStop()
    {
    }

    public virtual int EnableUIFlags
    {
        get
        {
            return this.m_enableUIFlags;
        }
    }
}

Die virtuellen Methoden sollen in abgeleiteten Typen überschrieben werden. Wenn ich es durch FxCop laufen lasse, beschwert es sich darüber, dass keine sichtbaren Instanzfelder deklariert wurden und empfiehlt, es in privat zu ändern und als geschützte Eigenschaft darzustellen.

Haben Sie eine Idee? Ich denke, diese Nachricht kann ignoriert werden.

0voto

Rex Morgan Punkte 2938

Paul Alexander hat recht, und FxCop auch.

Sie möchten Ihre Felder privat machen und sie durch eine Eigenschaft offenlegen, um zu verhindern, dass abgeleitete Klassen die Variable selbst ändern. Wenn Sie sie zwingen, über eine Eigenschaft zu gehen, hat die Basisklasse die Möglichkeit, Änderungen zu überprüfen und/oder abzulehnen.

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