SqlDataReader'sクラスステートメントが、これらは全てそのベースクラス、DbDataReaderによって実装されていてもたIDataReader、IDataRecordとIDisposableをしています。この場合クラスKeyword - 継承されたインタフェースを明示的に示していますか?
public class SqlDataReader : DbDataReader,
IDataReader, IDisposable, IDataRecord {...}
public abstract class DbDataReader : MarshalByRefObject,
IDataReader, IDisposable, IDataRecord, IEnumerable {...}
、派生クラスがどのそのインターフェースを実装することを示すにはいくつかの技術的な利点があります基本クラスはすでにそれが実装されていることを示していますか? (これは遺産の遺物、誤植、または文書化のために行われたものであるかどうか疑問に思う)
あなたはこれを見ましたか? [referencesource.microsoft.com](https://referencesource.microsoft.com/#System.Data/System/Data/SqlClient/SqlDataReader.cs)サイトでこれを見ることはできません。 – Dmitry
@Dmitry、両方ともに 'IDataReader'が定義されていますが、答えはいいえです。冗長なインターフェース宣言を追加する必要はありません。 –
@KirkWoll明示的なインターフェイスの実装についてはどうですか? 'SqlDataReader'クラスには、IDataReader IDataRecord.GetData(int i)というクラスがあります。 – Dmitry