Auf Englisch lesen

Freigeben über


Eigenschaftenzugriffsmethoden können in einer NotOverridable-Eigenschaft nicht als „<accessmodifier>“ deklariert werden.

Eine Get-Anweisung oder Set-Anweisung in einer NotOverridable-Eigenschaft enthält das Schlüsselwort Private.

Anhand der folgenden logischen Beschreibung wird erläutert, warum NotOverridable und Private nicht in einer Property Statementkombiniert werden können:

  1. Eine Eigenschaft oder Prozedur, die keine Basisklasseneigenschaft bzw. -prozedur überschreibt, hat die Standardeinstellung NotOverridable.

  2. Eine Eigenschaft oder Prozedur in einer abgeleiteten Klasse, die eine Basisklasseneigenschaft bzw. -prozedur überschreibt, hat dagegen die Standardeinstellung Overridable. Um die Hierarchie des Überschreibens zu beenden, können Sie diese als NotOverridabledeklarieren. Dies ist der einzige Kontext, in dem Sie NotOverridableverwenden können. Das heißt, Sie können NotOverridable nur in Verbindung mit Overrides.

  3. Ist eine Eigenschaft oder Prozedur einer Basisklasse als Privatedeklariert, kann diese Eigenschaft oder Prozedur nicht von einer abgeleiteten Klasse überschrieben werden, da diese nicht auf die Eigenschaft oder Prozedur zugreifen kann. Daher können Sie Private nicht in Verbindung mit Overridableverwenden.

  4. Um eine Eigenschaft oder Prozedur zu überschreiben, muss die überschreibende Eigenschaft oder Prozedur nicht nur dieselbe Signatur, sondern auch dieselbe Zugriffsebene haben. Das bedeutet, dass eine überschreibende Eigenschaft oder Prozedur Privatenicht angeben kann, weil eine überschreibbare Eigenschaft oder Prozedur Privatenicht angeben kann.

  5. Da Sie NotOverridable nur für eine überschreibende Eigenschaft oder Prozedur angeben können, können Sie dieses Schlüsselwort nicht mit Privatekombinieren.

Aufgrund derselben Logik können die einzelnen Eigenschaftenprozeduren (Get und Set) einer überschreibenden Eigenschaft nicht Privatesein.

Fehler-ID: BC31106

So beheben Sie diesen Fehler

  • Entfernen Sie das Private -Schlüsselwort aus der Get - oder Set -Anweisung, oder entfernen Sie die Schlüsselwörter Overrides und NotOverridable aus der Property -Anweisung.

Siehe auch