Ковариантность (и контрвариантность) массивов - C#
Формулировка задачи:
Найдите и исправьте ошибки в методе Main
Исправил на
При проверке на сайте, пишет не правильно, ошибку не указывает. В чём моя ошибка?
using System; namespace Less05_task01 { class Program { static void Main( string[] args ) { MyClass[] array = { new MyClass(), new MyClass(), new MyClass() }; for ( int i = 0; i < array.GetLength( 0 ); i++ ) { array[ i ].Method1(); array[ i ].Method2(); } IInterface[] BaseArray = array; for ( int i = 0; i < BaseArray.GetLength( 0 ); i++ ) { BaseArray[ i ].Method1(); BaseArray[ i ].Method2(); } MyClass[] DerArray = BaseArray; for ( int i = 0; i < DerArray.GetLength( 0 ); i++ ) { DerArray[ i ].Method1(); DerArray[ i ].Method2(); } Console.ReadKey(); } } interface IInterface { void Method1(); } class MyClass : IInterface { public void Method1() { Console.WriteLine("Method from Base"); } public void Method2() { Console.WriteLine("Method from Derived"); } } }
using System; namespace Less05_task01 { class Program { static void Main(string[] args) { MyClass[] array = { new MyClass(), new MyClass(), new MyClass() }; for (int i = 0; i < array.GetLength(0); i++) { array[i].Method1(); array[i].Method2(); } IInterface[] BaseArray = array; for (int i = 0; i < BaseArray.GetLength(0); i++) { BaseArray[i].Method1(); } MyClass[] DerArray = array; for (int i = 0; i < DerArray.GetLength(0); i++) { DerArray[i].Method1(); DerArray[i].Method2(); } Console.ReadKey(); } } interface IInterface { void Method1(); } class MyClass : IInterface { public void Method1() { Console.WriteLine("Method from Base"); } public void Method2() { Console.WriteLine("Method from Derived"); } } }
Помогите исправить ошибку
Решение задачи: «Ковариантность (и контрвариантность) массивов»
textual
Листинг программы
MyClass[] DerArray = (MyClass[])BaseArray;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д