Obsah:
Definice - Co znamená Operátor převodu?
Operátor převodu v C # je operátor, který se používá k deklarování převodu na uživatelem definovaném typu, takže objekt tohoto typu může být převeden na nebo z jiného uživatelem definovaného typu nebo základního typu. Dva různé typy uživatelsky definovaných konverzí zahrnují implicitní a explicitní konverze.
Obecně platí, že explicitní a implicitní převodní operátoři poskytují třídě schopnost být přeneseni na další možné typy dat.
Operátor explicitního převodu musí být vyvolán obsazení a používá se, když musí být konverze viditelná pro uživatele operátora. Používá se v obsazení výrazů, kde dva typy dat nejsou zcela kompatibilní, a proto vyžadují operátora obsazení.
Implicitní operátor převodu se snadno používá. Nevyžaduje zvláštní syntaxi a zlepšuje čitelnost kódu. Také třídě pomáhá převádět data datového typu na kompatibilní typ bez přetypování typu. Implicitní obsazení musí být použito v situacích, jako je vyvolání a přiřazení funkčních členů, kde nehrozí riziko ztráty dat nebo výskytu výjimek.
Techopedia vysvětluje Operátor převodu
Implicitní převod lze pro třídu definovat pomocí klíčového slova „implicitní“ spolu s klíčovým slovem „operátor“. Operaci explicitního převodu lze pro třídu definovat pomocí klíčového slova „explicitní“ spolu s klíčovým slovem „operátor“. Obě převody musí být definovány jako statické.
Například třídu RomanNumeral lze definovat se dvěma operátory převodu. Implicitní převodový operátor může být definován pro převod z třídy RomanNumeral na řetězec pro zobrazení čísla v římské číselné podobě; operátor explicitního převodu může být definován pro provádění převodu z třídy RomanNumeral na celé číslo.
Převod třídy na typ objektu nebo typ rozhraní není povolen. Totéž platí pro převod ze základní třídy na třídu odvozenou od základní třídy.
Pro danou třídu nelze explicitně ani implicitní operátory určit pro převod ze stejného typu na jiný.
Je třeba dbát na to, aby implicitní převod nevedl ke ztrátě dat nebo výjimce. Pokud existují platné důvody pro vyvolání výjimky, měla by být konverze explicitního typu.
Tato definice byla napsána v kontextu C #