Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 19862|Respuesta: 1

[Fuente] Herencia de características en .net/c# en detalle

[Copiar enlace]
Publicado en 14/2/2017 11:13:38 | | |
Descripción:

Hay dos clases, A y B, I A hereda la clase B y luego B es la clase madre

He puesto las propiedades TestAttribute en clase A y clase B respectivamente...

Luego, tomemos las características del objeto, y el código es el siguiente:



He comprobado que el número de resultados es 1, y el atributo es el atributo establecido por A, no el atributo conjunto por B, y mucho menos fusionado, ¿por qué es así???


[Ayuda("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Aquí hay cuatro combinaciones posibles:

[UsoDeatributo(ObjetivosDeAtributo.Clase, PermiteMúltiple = falso, Heredado = falso]  
[AtributoUso(AtributoObjetivos.Clase, PermitirMúltiple = verdadero, Heredado = falso]  
[UsoDeatributo(ObjetivosDeatributo.Clase, PermiteMúltiple = falso, Heredado = verdadero]  
[UsoAtributo(ObjetivosDeAtributo.Clase, PermitirMúltiple = verdadero, Heredado = verdadero ]  
El primer caso:

Si consultamos la clase Derive (más adelante veremos cómo consultar las propiedades de una clase en tiempo de ejecución), veremos que la función de Ayuda no existe porque la propiedad heredada está configurada como falsa.

Segundo caso:

Igual que en el primer caso, porque heredado también se pone en falso.



La tercera situación:

Para explicar el tercer y cuarto caso, primero añadamos algo de código a la clase derivada:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Ahora consultemos la función de Ayuda, solo podemos obtener las propiedades de la clase derivada, porque heredado está configurado como verdadero, pero Permitir Múltiple está en falso. Por lo tanto, la característica Ayuda de la clase base se anula por la característica de ayuda de la clase derivada.

La cuarta situación:

Aquí veremos que la clase derivada tiene tanto la característica Ayuda de la clase base como su propia característica Ayuda, porque AllowMultiple está configurado como true.







Anterior:Asignación en C# entre dos propiedades de objetos
Próximo:ErrorTipo no capturado: a(...). Padres(...). ySelf no es una función
 Propietario| Publicado en 30/3/2017 9:35:49 |
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com