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