Los descriptores de acceso de la propiedad no se pueden declarar como '<accessmodifier>' en una propiedad 'NotOverridable'

Una instrucción Get o una instrucción Set de una propiedad NotOverridable incluye la palabra clave Private.

La línea de razonamiento siguiente explica por qué NotOverridable y Private no se pueden combinar en una Property Statement:

  1. Una propiedad o un procedimiento que no reemplaza una propiedad de clase base o un procedimiento tiene un valor predeterminado de NotOverridable.

  2. Sin embargo, una propiedad o un procedimiento de una clase derivada que reemplaza una propiedad de clase base o un procedimiento tiene un valor predeterminado de Overridable. Para finalizar la jerarquía de reemplazo, puede declararla NotOverridable. Este es el único contexto en que se puede usar NotOverridable. Es decir, solo puede usar NotOverridable en combinación con Overrides.

  3. Si se declara una propiedad de clase base o procedimiento Private, una clase derivada no puede invalidar esa propiedad o procedimiento porque no puede tener acceso a estos. Por este motivo, no puede usar Private en combinación con Overridable.

  4. Para reemplazar una propiedad o un procedimiento, la propiedad o el procedimiento de reemplazo no solo debe tener la firma idéntica, sino también el mismo nivel de acceso. Esto significa que no una propiedad o procedimiento de reemplazo no pueden especificar Private, porque una propiedad o un procedimiento reemplazables no pueden especificar Private.

  5. Dado que puede especificar NotOverridable solo en una propiedad o un procedimiento de reemplazo, no se puede combinar con Private.

Siguiendo el mismo razonamiento, los procedimientos de propiedades individuales (Get y Set) de una propiedad de reemplazo no pueden ser Private.

Identificador de error: BC31106

Para corregir este error

  • Quite la palabra clave Private de la instrucción Get o Set , o bien quite las palabras clave Overrides y NotOverridable de la instrucción Property .

Consulte también