Ссылочные типы и полиморфизм, приведение пользовательских типов - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Не могу въехать в одну концепцию, а именно - приведение пользовательских типов. Если приведение встроенных типов не вызывает недопониманий:
int i = 250;
// Ошибка! Т.к возможна потеря данных, ибо максимальное значение типа byte = 255, а у int 2 147 483 647
byte b = i;
То приведение пользовательских типов вызывает вопрос. Почему я не могу привести базовый типа в производный? Аналогичная ситуация с потерей данных? Если да, то что может потеряться? Формально конечно я знаю, что нельзя преобразовать базовый тип в производный, но логики не улавливаю. Возможно я не совсем правильно понимаю что означает тип (переменная типа), в частности в контексте C#. О, уважаемые! Прошу помощи.

Решение задачи: «Ссылочные типы и полиморфизм, приведение пользовательских типов»

textual
Листинг программы
class Animal {}
class Cat : Animal {}
class Dog : Animal {}
 
Cat cat = new Cat();
Animal someAnimal = cat;
 
Dog dog = someAnimal; // (cat)... WTF?!

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы