Есть класс Colum<T>
, Есть класс Row
со списком List<Colum>
. И есть проблема, List<Colum>
требует указать ещё тип T
аки List<Colum<int>>
, но мне не нужно это, мне нужно чтобы Row
хранил в себе список Colum
и не задумывался о том, какой тип шаблона у Colum. Что можете посоветовать? (знаю про dynamic, но пытаюсь обойтись без него)
Сделайте обычный класс Column
, от него наследуйте обобщенные классы (Column<T> : Column
), в Row
храните список базового List<Column>
.
Просто как пример
public abstract class Column
{
public abstract object ValueObject { get; }
}
public class Column<T> : Column
{
private T typedValue;
public Column(T value)
{
typedValue = value;
}
public override object ValueObject => typedValue;
public T Value => typedValue;
}
Строка
public class Row
{
private List<Column> _list = new List<Column>();
public void Add(Column c) =>
_list.Add(c);
public void Print() =>
_list.ForEach(v => Console.WriteLine(v.ValueObject));
}
Как использовать
var row = new Row();
row.Add(new Column<int>(5));
row.Add(new Column<string>("vasya"));
row.Print();
Вывод
5
vasya
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я знаю, что Open Server имеет в комплектации консоль, откуда есть доступ к ComposerТем не менее, я бы хотел обойтись без этой консоли и работать с Composer...
есть текст [a]какой то текст[/a] еще куча какого то текста, [a]какой то текст[/a] есть регулярка /(\[a+\/a\])/ если текст без переноса строки, то находит...
Есть у нас сформированный на php масив данных: