C#のインターフェイス型とは?代表的なインターフェイスと実装例を解説
インターフェイス(interface)は、プロパティ、メソッド、イベントといったメンバーを定義するための仕組みです。ただし、インターフェイスにはメンバーの宣言のみが含まれ、実際の処理(実装)は含まれません。実装は、そのインターフェイスを継承したクラス側で行います。
C#の主なインターフェイス型
C#には、コレクション操作などでよく使われる代表的なインターフェイスが多数用意されています。以下にその一部を紹介します。
IEnumerable ― すべてのジェネリックコレクションの基本となるインターフェイス。
IList ― 配列や List 型などが実装する、インデックスによる要素アクセスを可能にするジェネリックインターフェイス。
IDictionary ― キーと値のペアで要素を管理するディクショナリ(辞書)コレクションを表すインターフェイス。
IEnumerable インターフェイスの役割
IEnumerable は、IEnumerator を返す GetEnumerator() という単一のメソッドだけを定義したシンプルなインターフェイスです。このインターフェイスを実装したコレクションは、foreach ステートメントを使って読み取り専用の列挙アクセスを行うことができます。
つまり、IEnumerable を実装しておけば、独自のコレクションクラスでも foreach ループによる反復処理が可能になります。
実装例:IEnumerable と IEnumerator の実装
以下は、IEnumerable および IEnumerator インターフェイスを実装したクラスのサンプルコードです。
class Demo : IEnumerable, IEnumerator {
// IEnumerable メソッド GetEnumerator()
IEnumerator IEnumerable.GetEnumerator() {
throw new NotImplementedException();
}
public object Current {
get { throw new NotImplementedException(); }
}
// IEnumerator メソッド
public bool MoveNext() {
throw new NotImplementedException();
}
// IEnumerator メソッド
public void Reset() {
throw new NotImplementedException();
}
}
上記のコードでは、IEnumerator インターフェイスが持つ次の2つのメソッドを実装していることがわかります。
// IEnumerator メソッド:次の要素へ移動する
public bool MoveNext() {
throw new NotImplementedException();
}
// IEnumerator メソッド:列挙の初期状態に戻す
public void Reset() {
throw new NotImplementedException();
}
IEnumerator の各メンバーの意味
MoveNext() ― 列挙子をコレクションの次の要素へ進めます。次の要素が存在すれば true、末尾に達すれば false を返します。
Reset() ― 列挙子を初期位置(コレクションの先頭より前)に戻します。
Current ― 現在位置にある要素を取得するプロパティです。
このように、C#のインターフェイスは「何をするか」だけを定義し、「どう実現するか」は実装クラスに委ねることで、柔軟で再利用性の高いコード設計を可能にします。
-
Microsoft Office 15(Office 2013)レビュー:アップグレードする価値はあるのか?
Windows 8の登場を心待ちにしている方なら、MicrosoftがOffice製品をどう進化させるのか気になっていたことでしょう。このほど、Metroインターフェース上でシームレスに動作する新版「Microsoft Office 15」に関する情報が公開されました。しかし、果たして使う価値はあるのでしょうか? Office 15の新機能 まず注目したいのはPowerPointです。プレゼンター向けに洗練されたダッシュボードが用意され、デジタルレーザーポインターとタイマーを活用しながら、本来の演出イメージどおりにスライドを提示できます。Windows 8タブレットに外部モニターを接続すれば、
-
データベースの種類を徹底解説!11種類の特徴と使い分け
データベースには、用途や要件に応じてさまざまな種類が存在します。ここでは、市場で利用されている主な11種類のデータベースについて紹介します。集中型データベース分散型データベース個人用データベースエンドユーザーデータベース商用データベースNoSQLデータベースオペレーショナル(運用系)データベースリレーショナルデータベースクラウドデータベースオブジェクト指向データベースグラフデータベースそれでは、それぞれの種類について詳しく見ていきましょう。1. 集中型データベース(Centralised Database)集中型データベースは、データが一箇所に集約して保存され、各地のユーザーがそのデータへアク