.NET 4.x Привести один тип к другому. Тип универсальный, параметризируется другими типами - C#
Формулировка задачи:
Доброго времени суток!
Прошу помощи, что-то туплю. Под вечер или вообще
Пытаюсь привести один тип к другому. Тип универсальный, параметризируется другими типами.
Естественно, приведение не удается. Почему, увы, не понятно.
Естественно, ниже - псевдокод. Попытка понять - что я делаю не так.
Что удивительно, в другой части программы всё вроде получается и примерно (как мне кажется) в таких случаях.
Спасибо за помощь!
P.S.: Всё это тестируется в консольном приложении.
Листинг программы
- private void Test()
- {
- var stair = new StairA<MyObject, MyModel>();
- StairA<IStorageElement, IStorageElement> test1 = stair as StairA<IStorageElement, IStorageElement>;
- StairA<IStorageElement, IStorageElement> test2 = new StairA<MyObject, MyModel>();
- StairA<IStorageElement, IStorageElement> test3 = new StairB();
- }
- class StairA<TA, TB>
- where TA : class, IStorageElement
- where TB : class, IStorageElement
- {
- }
- class StairB: StairA<MyObject, MyModel>
- {
- }
- class MyObject: IStorageElement
- {
- }
- class MyModel: IStorageElement
- {
- }
Решение задачи: «.NET 4.x Привести один тип к другому. Тип универсальный, параметризируется другими типами»
textual
Листинг программы
- private void Test()
- {
- var stair = new StairA<MyObject, MyModel>();
- IStairA<IStorageElement, IStorageElement> test1 = stair as IStairA<IStorageElement, IStorageElement>;
- IStairA<IStorageElement, IStorageElement> test2 = new StairA<MyObject, MyModel>();
- IStairA<IStorageElement, IStorageElement> test3 = new StairB();
- }
- interface IStairA<out TA, out TB>
- where TA : class, IStorageElement
- where TB : class, IStorageElement
- {
- }
- private class StairA<TA, TB> : IStairA<TA, TB>
- where TA : class, IStorageElement
- where TB : class, IStorageElement
- {
- }
- class StairB : IStairA<MyObject, MyModel>
- {
- }
- class MyObject : IStorageElement
- {
- }
- class MyModel : IStorageElement
- {
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д