Kann nicht abgedichtet werden, da es nicht überschreiben

Habe ich die folgende Klasse:

namespace Warnings
{
    public abstract class BaseWarningIntField : IWarningInnerDataField
    {
        public string PropName;

        public string HeaderCaption;

        public sealed WarningInnerDataType DataType
        {
            get { return WarningInnerDataType.Integer; }
        }
    }
}

Möchte ich die Letzte Eigenschaft DataType werden nicht überschreibbare, denn das ist die Basis-Klasse für eine Warnung-detail-Feld vom Typ Integer, so muss es immer wieder den richtigen Typ WarningInnerDataType.Integer.

Sowieso, der compiler gibt mir die folgende Fehlermeldung:

'Warnungen.BaseWarningIntField.Datentyp' kann nicht abgedichtet werden, weil es nicht eine Außerkraftsetzung

Aber, soweit ich weiß, die override tut genau das Gegenteil von dem, was ich versuche zu erreichen.

  • Warum versuchen Sie nicht überschreiben, die Methode in der konkreten Umsetzung? Sie könnten erneut, dass diese Frage nach einem schnellen experiment.
  • Nur machen Sie es nicht virual dann, keine Notwendigkeit, um es zu verschließen.
  • alternativ verwenden Sie statische nur-Lesen -
  • und Methoden zu. Siehe Abschnitt 10.6.5 der Sprache C# spec.
InformationsquelleAutor Teejay | 2013-03-27
Schreibe einen Kommentar