概要
どのページに書くにも収まりの悪かったものをここに。
ダック タイピング
C# では通常、クラスやインターフェースの型情報に基づいてメソッド呼び出しが行われます。 一方で、動的言語と呼ばれるような言語では、 「同じ名前のメソッドを持っていれば変数の型は問わない」 というような方針でメソッドを呼び出せます。
動的言語でよく見られるような、インターフェースに頼るのではなく、 メソッドなどの名前だけ見て処理を振り分けるようなプログラミングスタイルを 「ダック タイピング(duck typing)」といいます。 (「アヒルのように歩き、アヒルのように鳴くものはアヒルに違いない」という格言が由来で、 「見てくれ一緒なら同じ扱いしてもいいじゃない」という意味。)
C# 4.0 以降では、dynamic
キーワードを使うことでダックタイピングが可能です。
また、インターフェイスの実装が不要という意味では、パターン ベースな構文(例えば foreach やクエリ式)のこともダック タイピングということがありました。 ただ、ダック タイピングという言葉は動的な処理で好まれるものなので、 最近ではパターン ベースな構文を指して使うことはなくなってきました。