StringComparer.OrdinalIgnoreCase
プロパティに関するMSDNのドキュメントによると:
OrdinalIgnoreCase プロパティは、実際にはStringComparerクラスから派生した匿名クラスのインスタンスを返します。
これは私がよく知らない機能ですか? 継承のある匿名型ですか? または、「匿名クラス」とは、単に「から派生した内部クラスStringComparer
であり、クライアント コードには表示されない」という意味でしたか?
StringComparer.OrdinalIgnoreCase
プロパティに関するMSDNのドキュメントによると:
OrdinalIgnoreCase プロパティは、実際にはStringComparerクラスから派生した匿名クラスのインスタンスを返します。
これは私がよく知らない機能ですか? 継承のある匿名型ですか? または、「匿名クラス」とは、単に「から派生した内部クラスStringComparer
であり、クライアント コードには表示されない」という意味でしたか?
通常の C# での用語の意味では匿名型ではありません。
これは単なる内部型であるため、その名前はわかりません。コード内で正確な型を参照することはできません。
StringComparer のソース コードを見ると、OrginalIgnoreCase が StringComparer から派生した OrdinalComparer のインスタンスを返すことがわかります。
これについて私が見ることができる「匿名」のものは何もありません。それは単に内部的なものであり、フレームワークの外からは見ることができないということです。
コンパイラは、別の型から継承する匿名型を作成できますが、できません。別のクラスから継承するか、インターフェイスを実装する匿名型をその場で作成するのはクールな機能であるため、本当に残念です。
匿名型は、CLR やコンパイラではなく、私たちにとって匿名です。コンパイラは、名前に <> を含む面白い命名を使用しますが、コンパイラだけがそれを行うことができます! そしておそらくチャック・ノリス...