Допустим, мы пытаемся написать вспомогательный метод расширения для добавления ячеек для asp.net.Элементы управления Asp.net TableCell имеют только конструктор по умолчанию и могут создавать трудности при работе с данными с высокой степенью нестандартности (не обращая внимания на основные недостатки этого решения, не связанные с вопросом).
Полиморфное решение
public static void AddCell(this Table table, object cell) {
TableCell tableCell;
if (cell is TableCell) {
tableCell = (TableCell)cell;
} else if (cell is WebControl) {
tableCell = new TableCell();
tableCell.Controls.Add((WebControl)cell);
} else {
tableCell = new TableCell();
tableCell.Text = cell.ToString();
}
table.Rows[table.Rows.Count - 1].Cells.Add(tableCell);
}
Вопрос
Будет ли это лучше реализовано как универсальный метод или несколько перегрузок метода?