Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 19862|Atbildi: 1

[Avots] .net/c# funkciju pārmantošana detalizēti

[Kopēt saiti]
Publicēts 14.02.2017 11:13:38 | | |
Apraksts:

Ir divas klases, A un B, I A manto B klasi, un tad B ir vecāku klase

Es esmu iestatījis TestAttribute īpašības attiecīgi A un B klasē ...

Pēc tam ņemiet objekta īpašības, un kods ir šāds:



Es atklāju, ka rezultātu skaits ir 1, un atribūts ir atribūts, ko nosaka A, nevis atribūts, ko nosaka B, nemaz nerunājot par sapludināšanu, kāpēc tas ir???


[Help("BaseClass")] publicclass base{} publicclass atvasināt : base{}
Šeit ir četras iespējamās kombinācijas:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true ]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true ]  
Pirmais gadījums:

Ja mēs vaicājam klasi Derive (vēlāk redzēsim, kā vaicāt klases rekvizītus izpildes laikā), mēs konstatēsim, ka palīdzības līdzeklis nepastāv, jo mantotais rekvizīts ir iestatīts uz false.

Otrais gadījums:

Tāpat kā pirmajā gadījumā, jo mantotais ir arī iestatīts uz false.



Trešā situācija:

Lai izskaidrotu trešo un ceturto gadījumu, vispirms pievienosim atvasinātajai klasei kodu:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass atvasināt : Base{}
Tagad vaicāsim palīdzības funkciju, mēs varam iegūt tikai atvasinātās klases īpašības, jo mantotais ir iestatīts uz true, bet AllowMultiple ir iestatīts uz false. Tāpēc pamatklases palīdzības līdzekli ignorē atvasinātās klases palīdzības līdzeklis.

Ceturtā situācija:

Šeit mēs atradīsim, ka atvasinātajai klasei ir gan pamatklases palīdzības funkcija, gan sava palīdzības funkcija, jo AllowMultiple ir iestatīts uz true.







Iepriekšējo:C# piešķiršana starp diviem objekta rekvizītiem
Nākamo:Nenoķerts TypeError: a(...). vecāki (...). unSelf nav funkcija
 Saimnieks| Publicēts 30.03.2017 09:35:49 |
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com