【发布时间】:2016-11-07 23:09:29
【问题描述】:
SqlDataReader's 类语句包括 IDataReader、IDataRecord 和 IDisposable,尽管这些都由其基类 DbDataReader 实现:
public class SqlDataReader : DbDataReader,
IDataReader, IDisposable, IDataRecord {...}
public abstract class DbDataReader : MarshalByRefObject,
IDataReader, IDisposable, IDataRecord, IEnumerable {...}
在这种情况下,指示派生类实现其基类已经指示它实现的接口是否有一些技术优势? (我想不出一个。想知道这是遗留的遗物、错字还是出于文档目的。)
【问题讨论】:
-
你在哪里看到的?在referencesource.microsoft.com 网站上看不到这个。
-
@Dmitry,
IDataReader两者都定义了,但答案是否定的,没有理由添加多余的接口声明。 -
@KirkWoll 显式接口实现怎么样?
SqlDataReader类中有一个:IDataReader IDataRecord.GetData(int i)。 -
@Dmitry,啊,很好。所以毕竟不是多余的。
-
谢谢@Dmitry!我错过了。这是有道理的。
标签: c# class interface sqldatareader