我怎样才能避免双重铸造?

时间:2012-10-08 08:11:00

标签: c# interface casting

我有以下类层次结构:

MssqlDataSource<T>DataSource<T>IDataSource<T>IQueryable<T>

MssqlDataSource课程内,我获得了属性:

private Table<T> Table { get { return (Table<T>)(IQueryable<T>)this; } }

双重投射(thisIQueryable然后到Table)无法简化为(Table<T>)thisthis因为我正在编译错误。


private Table<T> Table { get { return (Table<T>)this; } }

制作: Cast error


那怎么解决呢?如何只使用一个(或更好的没有)来避免编译错误?为什么会出现?

1 个答案:

答案 0 :(得分:3)

据此:

MssqlDataSource<T>:DataSource<T>:IDataSource<T>:IQueryable<T>

MssqlDataSource<T>不会继承自Table<T>

为什么要进行这种演员?