русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Операції перетворення типу


Дата додавання: 2015-01-08; переглядів: 1161.


 

Операції перетворення типу забезпечують можливість явного і неявного перетворення між призначеними для користувача типами даних. Синтаксис об’явника операції перетворення типу:

 

implicit operator тип (параметр ) // неявне перетворення

explicit operator тип (параметр ) // явне перетворення

 

Ці операції виконують перетворення з типу параметра в тип, вказаний в заголовку операції. Одним з цих типів має бути клас, для якого визначається операція. Таким чином, операції виконують перетворення або типу класу до іншого типу, або навпаки. Перетворювані типи не мають бути зв'язані стосунками спадкоємства. Приклади операцій перетворення типу для класу Monster:

 

public static implicit operator int( Monster m )

{

return m.health;

}

 

public static explicit operator Monster(int h )

{

return new Monster(h, 100, "FromInt");

}

 

Нижче приведені приклади використання цих перетворень в програмі. Не треба шукати в них сенс, вони просто ілюструють синтаксис:

 

Monster Masha = new Monster(200, 200, "Masha");

int i = Masha; //неявне перетворення

Masha = (Monster) 500; //явне перетворення

 

Неявне перетворення виконується автоматично:

§ при привласненні об'єкту змінній цільового типу, як в прикладі;

§ при використанні об'єкту у виразі, що містить змінні цільового типу;

§ при передачі об'єкту в метод на місце параметра цільового типу;

§ при явному приведенні типу.

Явне перетворення виконується при використанні операції приведення типу. Всі операції класу повинні мати різні сигнатури. Ключові слова implicit і explicit в сигнатуру не включаються, отже, для одного і того ж перетворення не можна визначити одночасно явну і неявну версії.

Неявне перетворення слід визначати так, щоб при його виконанні не виникала втрата точності і не генерувалися виключення. Якщо ці ситуації можливі, перетворення слід описати як явне.

 

 


<== попередня лекція | наступна лекція ==>
Бінарні операції | Деструктор


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн