Преглед садржаја:
Дефиниција - Шта значи Оператор конверзије?
Оператор конверзије у Ц # је оператор који се користи за декларирање конверзије на кориснички дефинираном типу тако да се објект тог типа може претворити у или из другог дефинираног корисника или основног типа. Две различите врсте конверзија дефинисаних од стране корисника укључују имплицитне и експлицитне конверзије.
Опћенито, оператери експлицитних и имплицитних конверзија пружају могућност класи да буде препуштена другим могућим типовима података.
Експлицитни оператор претворбе мора се позвати са цаст и користи се када конверзија мора бити видљива корисницима оператора. Користи се у изразима цаст где две врсте података нису у потпуности компатибилне и зато захтева оператора цаст.
Оператор неизравне конверзије је једноставан за употребу. Не захтева посебну синтаксу и побољшава читљивост кода. Такође помаже класи да конвертује податке типа података у њихов компатибилни тип без кастинга типа. Имплицитна цаст мора се користити у ситуацијама као што су позиви и додјела чланова функције, гдје не постоји ризик од губитка података или појаве изузетака.
Тецхопедиа објашњава Оператор претворбе
Имплицитна конверзија може се дефинисати за класу користећи кључну реч „имплицитна“, заједно са кључном речи „оператор“. Експлицитна операција конверзије може се дефинисати за класу користећи кључну реч „експлицитна“ заједно са кључном речи „оператор“. Обе конверзије морају бити дефинисане као статичке.
На пример, класа, РоманНумерал, може се дефинисати са два оператора конверзије. Може се дефинисати имплицитни оператор претворбе да претвара из класе РоманНумерал у стринг за приказ броја у облику римског броја; експлицитни оператор претворбе може се дефинирати да изврши претворбу из класе РоманНумерал у цијели број.
Конверзија класе у тип објекта или тип интерфејса није дозвољена. Исто важи за конверзију из основне класе у класу изведену из основне класе.
За дату класу, ни експлицитни и имплицитни оператори не могу се одредити за конверзију из исте врсте у другу.
Треба водити рачуна да имплицитна конверзија не резултира губитком података или изузетком. Ако постоје ваљани разлози за изузеће, конверзија би требала бити експлицитног типа.
Ова дефиниција је написана у контексту Ц #