Turinys:
Apibrėžimas - ką reiškia konversijos operatorius?
Konversijos operatorius, C #, yra operatorius, naudojamas deklaruoti vartotojo nustatyto tipo konversiją, kad to tipo objektą būtų galima konvertuoti į kitą vartotojo apibrėžtą tipą arba pagrindinį tipą. Du skirtingi vartotojo apibrėžtų konversijų tipai apima netiesiogines ir aiškias konversijas.
Apskritai, tiesioginiai ir numanomi konversijos operatoriai suteikia galimybę klasei priskirti kitus galimus duomenų tipus.
Į tiesioginį konversijos operatorių turi būti kreipiamasi atlikus balsą ir jis naudojamas, kai konversija turi būti matoma operatoriaus vartotojams. Jis naudojamas išraiškose, kur du duomenų tipai nėra visiškai suderinami, todėl jiems reikalingas perdavimo operatorius.
Netiesioginiu konversijos operatoriumi lengva naudotis. Tam nereikia specialios sintaksės ir tai pagerina kodo skaitomumą. Tai taip pat padeda klasei konvertuoti duomenų tipo duomenis į suderinamus, netaikant tipo duomenų. Netiesioginis perdavimas turi būti naudojamas tokiose situacijose kaip funkcijos narių kvietimai ir paskyrimai, kai nėra pavojaus prarasti duomenis ar atsirasti išimčių.
„Techopedia“ paaiškina konversijos operatorių
Netiesioginę klasės konversiją galima apibrėžti, naudojant raktinį žodį „netiesioginis“ kartu su raktiniu žodžiu „operatorius“. Aiškią klasės konvertavimo operaciją galima apibrėžti naudojant raktinį žodį „aiškus“ kartu su raktiniu žodžiu „operatorius“. Abi konversijos turi būti apibrėžtos kaip statinės.
Pvz., Klasę „RomanNumeral“ galima apibrėžti naudojant du konvertavimo operatorius. Galima apibrėžti numanomą konvertavimo operatorių, kad būtų galima konvertuoti iš „RomanNumeral“ klasės į eilutę, kad būtų rodomas skaičius romėniškais skaitmenimis; gali būti apibrėžtas aiškus konvertavimo operatorius, kuris atliktų konversiją iš „RomanNumeral“ klasės į sveikąjį skaičių.
Neįmanoma klasės konvertuoti į objekto tipą ar sąsajos tipą. Tas pats pasakytina apie konvertavimą iš pagrindinės klasės į klasę, gautą iš bazinės klasės.
Konkrečiai klasei negalima nurodyti nei aiškių, nei numanomų operatorių, norint konvertuoti iš to paties tipo į kitą.
Reikėtų pasirūpinti, kad dėl netiesioginio konvertavimo nebūtų prarasti duomenys ar būtų daroma išimtis. Jei yra pagrįstų priežasčių atmesti išimtį, konversija turėtų būti aiškaus tipo.
Šis apibrėžimas buvo parašytas atsižvelgiant į C #