Leggere in inglese

Condividi tramite


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:

  1. 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.

  2. 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.

  3. 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 con Overridable.

  4. 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 Privateperché una proprietà o una routine di cui può essere eseguito l'override non può essere dichiarata Private.

  5. 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 chiave Private.

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

Per correggere l'errore

  • Rimuovere la parola chiave Private dall'istruzione Get o Set oppure rimuovere le parole chiave Overrides e NotOverridable dall'istruzione Property .

Vedi anche