Obsah:
Definícia - Čo znamená prevádzkovateľ konverzie?
Operátor konverzie v C # je operátor, ktorý sa používa na deklarovanie konverzie na užívateľom definovanom type, takže objekt tohto typu môže byť konvertovaný na alebo z iného užívateľom definovaného typu alebo základného typu. Dva rôzne typy konverzií definovaných používateľom zahŕňajú implicitné a explicitné konverzie.
Vo všeobecnosti platí, že explicitné a implicitné operátory prevodu poskytujú triede schopnosť preniesť ju na iné možné typy údajov.
Operátor explicitného konverzie musí byť vyvolaný pomocou odovzdania a používa sa, keď musí byť konverzia viditeľná pre používateľov operátora. Používa sa v obsadených výrazoch, kde tieto dva typy údajov nie sú úplne kompatibilné, a preto si vyžadujú operátora prenášania.
Implicitný operátor prevodu sa ľahko používa. Nevyžaduje si špeciálnu syntax a zlepšuje čitateľnosť kódu. Pomáha tiež triede prevádzať údaje dátového typu na kompatibilný typ bez prenášania typov. Implicitné odovzdávanie sa musí použiť v situáciách, ako sú vyvolania funkcií a priradenia funkcií, kde nehrozí riziko straty údajov alebo výskytu výnimiek.
Techopedia vysvetľuje prevádzkovateľa konverzie
Implicitnú konverziu je možné definovať pre triedu pomocou kľúčového slova „implicitná“ spolu s kľúčovým slovom „operátor“. Operáciu explicitného prevodu možno pre triedu definovať pomocou kľúčového slova „explicitný“ spolu s kľúčovým slovom „operátor“. Obe konverzie musia byť definované ako statické.
Napríklad triedu RomanNumeral je možné definovať pomocou dvoch operátorov prevodu. Implicitný operátor prevodu môže byť definovaný na prevod z triedy RomanNumeral na reťazec na zobrazenie čísla v tvare rímskej číslice; explicitný operátor prevodu sa môže definovať na vykonávanie prevodu z triedy RomanNumeral na celé číslo.
Konverzia triedy na typ objektu alebo typ rozhrania nie je povolená. To isté platí pre prevod zo základnej triedy na triedu odvodenú zo základnej triedy.
Pre danú triedu nie je možné špecifikovať explicitný aj implicitný operátor na prevod z toho istého typu na iný.
Malo by sa zabezpečiť, aby implicitná konverzia nemala za následok stratu údajov alebo výnimku. Ak existujú platné dôvody na vylúčenie, konverzia by mala byť výslovného typu.
Táto definícia bola napísaná v kontexte C #