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"),
};
처럼 작동처럼 내 배열은 내가 사용 동적 아니라고 생각 있어야한다 그렇게하는 가장 좋은 방법은 .. 누군가가 빛을 비춰주게!
편집
빌어 먹을 나는 '> 암시 IDataTableColumn < 객체 에'유형 DataTableColumn < INT>를 변환 할 수 없습니다 오류
를 잊어 버렸습니다. 명시 적 변환은 (당신 이 캐스트를 누락?) 존재
암시 유형 DataTableColumn < System.DateTime를 변환 할 수 없습니다? > '에서 'IDataTableColumn < 개체> '로 변경하십시오. 명시 적 변환은 (당신 이 캐스트를 누락?)
어떤 오류가 발생합니까? –