Приведение типов - C# (180976)

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

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

Проблема с приведениями типов
Листинг программы
  1. public abstract class A<T> where T : B{}
  2. public class A1:A<B1>{}
  3. public abstract class B{}
  4. public class B1:B{}
  5. public class B2:B{}
  6. void Main(){
  7. var a1 = new A1();
  8. var a=(A<B>)a1;//ошибка
  9. var ab1= (A<B1>)a1;//работает
  10. }
Пробовал писать оператор преобразования для класса А1, но в переменной null и
Листинг программы
  1. (A<B>)(object)a1
, как правильно привести?

Решение задачи: «Приведение типов»

textual
Листинг программы
  1. public interface IA<out T> where T : B {}
  2. public abstract class A<T> : IA<T> where T : B{}
  3.  
  4. public class A1:A<B1>{}
  5.  
  6. public abstract class B{}
  7.  
  8. public class B1:B{}
  9.  
  10. public class B2:B{}
  11.  
  12. void Main(){
  13.  var a1 = new A1();
  14.  IA<A> a=a1;
  15. }

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


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

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

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут