Le funzioni di accesso alle proprietà non possono essere dichiarate come '<accessmodifier>' in una proprietà 'NotOverridable'
Un'istruzione Get o un'istruzione Set in una proprietà NotOverridable
include la parola chiave Private
.
Di seguito viene spiegato perché NotOverridable
e Private
non possono essere combinate in una Property Statement:
Una proprietà o una routine che non esegue l'override di una proprietà o di una routine di classe base è caratterizzata dall'impostazione predefinita NotOverridable.
Tuttavia, una proprietà o una routine di una classe derivata che esegue l'override di una proprietà o di una routine di classe base è caratterizzata dall'impostazione predefinita Overridable. Per terminare la gerarchia di override, è possibile dichiararla
NotOverridable
. Questo è il solo contesto in cui si può usare la proprietàNotOverridable
. In altre parole,NotOverridable
può essere usata soltanto in combinazione con Overrides.Se una proprietà o una routine di classe base viene dichiarata Private, una classe derivata non può eseguire l'override di quella proprietà o di quella routine in quanto non può accedervi. Per questo motivo, non è possibile usare
Private
in combinazione conOverridable
.Per poter eseguire l'override di una proprietà o di una routine, la proprietà o la routine che lo esegue deve avere in comune con queste non solo una firma identica, ma anche il medesimo livello di accesso. Questo implica che una proprietà o una routine che esegue un override non può essere
Private
perché una proprietà o una routine di cui può essere eseguito l'override non può essere dichiarataPrivate
.Quindi, poiché la proprietà
NotOverridable
può essere dichiarata solo per una proprietà o una routine che esegue l'override, non è possibile combinarla con la parola chiavePrivate
.
In base allo stesso ragionamento, le routine di proprietà individuali, vale a direGet
e Set
, di una proprietà che esegue l'override non possono essere Private
.
ID errore: BC31106
- Rimuovere la parola chiave
Private
dall'istruzioneGet
oSet
oppure rimuovere le parole chiaveOverrides
eNotOverridable
dall'istruzioneProperty
.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: