Передать коллекцию методу через интерфейс - C#

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

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

Работаю с ObservableCollection. Разные коллекции содержат разные классы, но эти классы имеют общие свойства, с которыми работает определенный метод. Реализовал эти свойства через общий для этих классов интерфейс. Пытаюсь передать методу коллекции, но ничего не получается. Где я ошибаюсь?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
 
namespace Test
{
    interface IInt
    {
        string str { get; set; }
    }
 
    class Class1 : IInt
    {
        public string str {get; set;}
        public Class1 ()
        {
            str = "Hello from Class1";
        }
    }
    class Class2 : IInt
    {
        public string str { get; set; }
        public Class2 ()
        {
            str = "Hello from Class2";
        }
    }
 
    class Program
    {
        
        static void Main()
        {
            ObservableCollection<Class1> OC1 = new ObservableCollection<Class1>();
            ObservableCollection<Class2> OC2 = new ObservableCollection<Class2>();
 
            OC1.Add(new Class1());
            OC2.Add(new Class2());
 
            /* Далее хочу пропихнуть обе созданные коллекции через метод Write.
             * Как это сделать?
            Write(OC1);
            Write(OC2);*/
 
            Console.ReadLine();
        }
 
        public static void Write (ObservableCollection<IInt> obj)
        {
            Console.WriteLine(obj.ElementAt(0).str);
        }
    }
}

Решение задачи: «Передать коллекцию методу через интерфейс»

textual
Листинг программы
(OC1.ElementAt(0) as Class1).str1 = "error";

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


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

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

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