Re: Наследование
От: Sinix  
Дата: 11.11.14 10:16
Оценка:
Здравствуйте, _ichensky, Вы писали:

_>Здравствуйте,

_>почему в C# получается ошибка при компиляции?

Ковариантность не работает с классами, только с интерфейсами.
    interface Base<out T> { } // <--
    class BaseT { }
    class InBaseT: BaseT { }
    class A: Base<InBaseT> { }

    class Program3
    {
        static void Main(string[] args)
        {
            var a = new A();

            var x1 = (Base<InBaseT>)a;
            var x2 = (Base<BaseT>)a; // error
        }
    }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.