Обобщённый класс. Реализация метода - C#

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

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

Доброго времени суток! Случайно довелось залезть в эту область C#. Создаю класс вроде следующего:
public class Sample <T>
{
    public T someVar;
    public void someMethod ()
    {
        if (someVar is Sample)
        {
            someVar.someMethod();
        }
        else
        {
            // some code
        }
    }
}
Подобная конструкция выдаёт ошибку. Суть в том, что данный класс может принимать свой же тип в качестве T. Грубо говоря, данный класс реализует специальную таблицу, ячейки которой могут быть те же специальные таблицы и так далее. Представленный метод должен "добираться" до самой нижней таблицы, тип которой не Sample, и выполнять определённые действия (здесь их заменяет комментарий). Вопрос: как правильно это реализовать? Заранее благодарю!

Решение задачи: «Обобщённый класс. Реализация метода»

textual
Листинг программы
  public interface ITableCell
    {
        string GetData();
    }
 
    public class SpecialCell : ITableCell
    {
        ITableCell[,] table;
 
        public string GetData()
        {
            return "I'm SpecialCell";   
        }
    }
 
    public class SimpleCell : ITableCell
    {
        public string GetData()
        {
            return "I'm simple cell";
        }
    }
 
    public class SpecialTable
    {
        ITableCell[,] table;
 
        public List<string> GetCellsData()
        {
            List<string> result= new List<string>();
            foreach (ITableCell c in table)
                result.Add(c.GetData());
 
            return result;
        }
    }

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


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

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

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