Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 19862|Risposta: 1

[Fonte] Ereditarietà delle caratteristiche .net/c# in dettaglio

[Copiato link]
Pubblicato su 14/02/2017 11:13:38 | | |
Descrizione:

Ci sono due classi, A e B, I A eredita la classe B, e poi B è la classe madre

Ho impostato le proprietà TestAttribute rispettivamente nella classe A e nella classe B...

Poi, prendiamo le caratteristiche dell'oggetto e il codice è il seguente:



Ho scoperto che il numero di risultati è 1, e l'attributo è l'attributo imposto da A, non l'attributo imposto da B, figuriamoci fuso, perché succede questo???


[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Ci sono quattro possibili combinazioni qui:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = vero, Inherited = falso]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = vero, Ereditato = vero ]  
Il primo caso:

Se interroghiamo la classe Derive (vedremo più avanti come interrogare le proprietà di una classe a runtime), scopriremo che la funzione Aiuto non esiste perché la proprietà ereditata è impostata su falso.

Secondo caso:

Come nel primo caso, perché anche ereditario è impostato su falso.



La terza situazione:

Per spiegare il terzo e il quarto caso, aggiungiamo prima un po' di codice alla classe derivata:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Ora interroghiamo la funzione Aiuto, possiamo ottenere solo le proprietà della classe derivata, perché ereditata è impostata su vera, ma AllowMultiple è impostata su falso. Pertanto, la caratteristica Aiuto della classe base viene sovrascritta dalla funzione Aiuto della classe derivata.

La quarta situazione:

Qui troveremo che la classe derivata ha sia la funzione Aiuto della classe base sia la propria funzione Aiuto, perché AllowMultiple è impostato su true.







Precedente:Assegnazione C# tra due proprietà di oggetti
Prossimo:Errore di tipo non catturato: a(...). Genitori (...). eSé non è una funzione
 Padrone di casa| Pubblicato su 30/03/2017 09:35:49 |
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com