我有以下类层次结构:
MssqlDataSource<T>
:DataSource<T>
:IDataSource<T>
:IQueryable<T>
在MssqlDataSource
课程内,我获得了属性:
private Table<T> Table { get { return (Table<T>)(IQueryable<T>)this; } }
双重投射(this
到IQueryable
然后到Table
)无法简化为(Table<T>)this
或this
因为我正在编译错误。
private Table<T> Table { get { return (Table<T>)this; } }
制作:
那怎么解决呢?如何只使用一个(或更好的没有)来避免编译错误?为什么会出现?
答案 0 :(得分:3)
据此:
MssqlDataSource<T>:DataSource<T>:IDataSource<T>:IQueryable<T>
MssqlDataSource<T>
不会继承自Table<T>
。
为什么要进行这种演员?