質問

のMSDNドキュメントによると StringComparer.OrdinalIgnoreCase 財産:

ordinalignoreCaseプロパティは、実際にから派生した匿名クラスのインスタンスを返します StringComperer クラス。

これは私が慣れていない機能ですか?継承を持つ匿名のタイプですか?または「匿名クラス」によって、著者は単に「内部クラスから派生する」という意味を持っていました StringComparer, 、クライアントコードには見えません」?

役に立ちましたか?

解決

StringComparerのソースコードを見ると、OrginalignOreCaseがStringComparerから派生したordinalComparerのインスタンスを返していることがわかります。

私が見ることができるこれについて「匿名」は何もありません、それはちょうどそれが 内部 そのため、フレームワークの外から見ることができません。

他のヒント

これは、用語の通常のC#意味における匿名タイプではありません。

それは単なる内部のタイプなので、あなたはそれの名前を知りません:あなたはあなたのコード内の正確なタイプを参照することはできません。

コンパイラ 別のタイプから継承する匿名タイプを作成できます - できません。他のクラスから継承するか、インターフェイスを実装するかのいずれかで、その場で匿名のタイプを作成するのはクールな機能になるので、それはあまりにも悪いことです。

匿名タイプはです 匿名 私たちにとっては、CLRではなく、共同体ではありません。コンパイラは、名前の<>を含む面白い命名を使用し、コンパイラのみがそれを行うことができます!と たぶんチャック・ノリス...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top