Innholdsfortegnelse:
Definisjon - Hva betyr konverteringsoperatør?
En konverteringsoperatør, i C #, er en operatør som brukes til å erklære en konvertering på en brukerdefinert type, slik at et objekt av den typen kan konverteres til eller fra en annen brukerdefinert type eller grunnleggende type. De to forskjellige typene av brukerdefinerte konverteringer inkluderer implisitte og eksplisitte konverteringer.
Generelt gir eksplisitte og implisitte konverteringsoperatører muligheten til en klasse som skal kastes til de andre mulige datatypene.
En eksplisitt konverteringsoperatør må påberopes med en rollebesetning og brukes når konverteringen må være synlig for operatørens brukere. Det brukes i cast-uttrykk der de to datatypene ikke er helt kompatible og derfor krever en rollebesetningsoperatør.
En implisitt konverteringsoperatør er enkel å bruke. Det krever ikke spesiell syntaks, og det forbedrer kodelesbarheten. Det hjelper også en klasse å konvertere data av en datatype til sin kompatible type uten å avstøpningstype. Implisitt rollebesetning må brukes i situasjoner som tilkallinger og tilordninger til funksjonsmedlemmer, der det ikke er fare for tap av data eller forekomst av unntak.
Techopedia forklarer Conversion Operator
En implisitt konvertering kan defineres for en klasse ved bruk av nøkkelordet "implisitt" sammen med "operatør" nøkkelordet. En eksplisitt konverteringsoperasjon kan defineres for en klasse ved bruk av nøkkelordet "eksplisitt" sammen med "operatør" nøkkelordet. Begge konverteringene må defineres som statiske.
For eksempel kan en klasse, RomanNumeral, defineres med to konverteringsoperatører. En implisitt konverteringsoperatør kan defineres for å konvertere fra RomanNumeral-klasse til streng for å vise et tall i romertallform; den eksplisitte konverteringsoperatøren kan defineres for å utføre konverteringen fra RomanNumeral-klasse til heltall.
Konvertering av en klasse til objekttype eller grensesnitttype er ikke tillatt. Det samme gjelder konvertering fra baseklasse til en klasse avledet fra baseklasse.
For en gitt klasse kan ikke de eksplisitte og implisitte operatørene spesifiseres for konvertering fra samme type til en annen.
Det må tas hensyn til at en implisitt konvertering ikke resulterer i tap av data eller unntak. Hvis det er gyldige grunner til å kaste unntak, bør konverteringen være av eksplisitt type.
Denne definisjonen ble skrevet i sammenheng med C #