See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 19862|Vastuse: 1

[Allikas] .net/c# funktsiooni pärandimine üksikasjalikult

[Kopeeri link]
Postitatud 14.02.2017 11:13:38 | | |
Kirjeldus:

On kaks klassi, A ja B, I A pärib klassi B ja siis on B vanemklass

Olen seadistanud TestAttribute omadused vastavalt klassi A ja klassi B...

Seejärel võtame objekti omadused ja kood on järgmine:



Leidsin, et tulemuste arv on 1 ja atribuut on A poolt seatud atribuut, mitte B atribuut, rääkimata ühendamisest, miks see nii on???


[Help("BaseClass")] publicclass Base{} publicclass Derive : Base{}
Siin on neli võimalikku kombinatsiooni:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = vale, päritud = vale]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = vale]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = vale, päritud = tõene]  
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true]  
Esimene juhtum:

Kui me pärime Derive-klassi kohta (näeme hiljem, kuidas pärida klassi omadusi käitusajal), leiame, et Abi funktsiooni ei eksisteeri, sest pärandatud omadus on seatud vääraks.

Teine juhtum:

Sama mis esimeses juhtumis, sest pärandatud on samuti seatud vääraks.



Kolmas olukord:

Kolmanda ja neljanda juhtumi selgitamiseks lisame esmalt tuletatud klassile koodi:

[Help("BaseClass")] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{}
Nüüd pärime Abi funktsiooni, saame ainult tuletatud klassi omadused, sest pärandatud on seatud tõeseks, aga AllowMultiple on seatud vääraks. Seetõttu ületab baasklassi abifunktsiooni tuletatud klassi abifunktsioon.

Neljas olukord:

Siin leiame, et tuletatud klassil on nii baasklassi Abi funktsioon kui ka oma Abi funktsioon, sest AllowMultiple on seatud tõele.







Eelmine:C# määramine kahe objekti omaduse vahel
Järgmine:Püütud tüübiviga: a(...). vanemad(...). andMina ei ole funktsioon
 Üürileandja| Postitatud 30.03.2017 09:35:49 |
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com