Я пытаюсь создать массив класса DataTableColumn, но, к сожалению, я схожу с ума от этого.
Сейчас это то, что я пытался сделать без успеха
public interface IDataTableColumn<out TValue> {
string Expression { get; }
DataTableFilterType FilterType { get; }
TValue Cast(string value);
}
public class DataTableColumn<TValue> : IDataTableColumn<TValue> {
public DataTableColumn(string expression, DataTableFilterType filterType = DataTableFilterType.Equal) {
Expression = expression;
FilterType = filterType;
}
public string Expression { get; private set; }
public DataTableFilterType FilterType { get; private set; }
public TValue Cast(string value) {
return value.As<TValue>();
}
}
Мой массив ДОЛЖЕН быть
private readonly IDataTableColumn<object>[] _columns = {
new DataTableColumn<int>("Id"), // ERROR
new DataTableColumn<string>("Description", DataTableFilterType.StartsWith), // SUCCESS
new DataTableColumn<DateTime?>("Date"), // ERROR
};
На самом деле так работает
private readonly dynamic[] _columns = {
new DataTableColumn<int>("Id"),
new DataTableColumn<string>("Description", DataTableFilterType.StartsWith),
new DataTableColumn<DateTime?>("Date"),
};
Я думаю, что использование динамического не лучший способ сделать это ... кто-то пролить свет, пожалуйста!
EDIT
Черт, я забыл ошибку
Невозможно неявно преобразовать тип
DataTableColumn 'для
'IDataTableColumn <объект>'.
явное преобразование существует (вы
пропустил актерский состав?)
Невозможно неявно преобразовать тип
DataTableColumn 'к
'IDataTableColumn <объект>'.
явное преобразование существует (вы
пропустил актерский состав?)