Sadržaj:
Definicija - Što znači Operator pretvorbe?
Operator konverzije u C # je operator koji se koristi za deklariranje pretvorbe na korisnički definiranom tipu tako da se objekt te vrste može pretvoriti u ili iz drugog definiranog korisnika ili osnovnog tipa. Dvije različite vrste konverzija koje definiraju korisnici uključuju implicitne i eksplicitne konverzije.
Općenito, operateri eksplicitnih i implicitnih pretvorbi omogućuju klasu da bude dodijeljena drugim mogućim tipovima podataka.
Izričit operator pretvorbe mora se pozvati s cast i koristi se kada konverzija mora biti vidljiva korisnicima operatera. Koristi se u izrazima cast gdje dvije vrste podataka nisu u potpunosti kompatibilne i stoga zahtijevaju cast operatora.
Za upotrebu je implicitni pretvorbeni operator. Ne zahtijeva posebnu sintaksu i poboljšava čitljivost koda. Također pomaže klasi da pretvori podatke vrste podataka u njihov kompatibilni tip bez lijevanja tipa. Implicitni oblik mora se koristiti u situacijama kao što su pozivi i dodjele članova funkcije gdje nema rizika od gubitka podataka ili pojave izuzetaka.
Techopedia objašnjava operatora pretvorbe
Implicitna konverzija može se definirati za klasu pomoću ključne riječi "implicitna", zajedno s ključnom riječi "operator". Izrična operacija pretvorbe može se definirati za klasu pomoću ključne riječi "eksplicitni" zajedno s ključnom riječi "operator". Obje konverzije moraju biti definirane kao statičke.
Na primjer, klasa RomanNumeral može se definirati s dva operatora pretvorbe. Može se definirati implicitni operator pretvorbe za pretvaranje iz klase RomanNumeral u niz za prikaz broja u obliku rimskog broja; može se definirati eksplicitni operator pretvorbe da izvrši pretvorbu iz klase RomanNumeral u cijeli broj.
Pretvaranje klase u vrstu objekta ili vrstu sučelja nije dopušteno. Isto vrijedi i za pretvorbu iz osnovne klase u klasu izvedenu iz osnovne klase.
Za datu klasu, ni eksplicitni i implicitni operatori ne mogu se odrediti za pretvorbu iz iste vrste u drugu.
Treba voditi računa da implicitna konverzija ne rezultira gubitkom podataka ili iznimkom. Ako postoje valjani razlozi za izuzeće, pretvorba bi trebala biti eksplicitnog tipa.
Ova je definicija napisana u kontekstu C #