8

根据关于该StringComparer.OrdinalIgnoreCase属性的 MSDN 文档:

OrdinalIgnoreCase 属性实际上返回从StringComparer类派生的匿名类的实例。

这是我不熟悉的特性——具有继承的匿名类型吗?还是作者所说的“匿名类”只是指“来自 的内部类StringComparer,对客户端代码不可见”?

4

4 回答 4

9

在该术语的正常 C# 含义中,它不是匿名类型。

它只是一种内部类型,因此您不知道它的名称:您无法在代码中引用确切的类型。

于 2010-11-26T17:13:01.377 回答
7

如果查看 StringComparer 的源代码,可以看到 OrginalIgnoreCase 返回一个 OrdinalComparer 的实例,该实例是从 StringComparer 派生的。

我看不到任何关于此的“匿名”,只是它是内部的,因此您无法从框架外部看到它。

于 2010-11-26T17:15:14.310 回答
4

编译器可以创建从另一种类型继承的匿名类型——你不能。这太糟糕了,因为动态创建一个匿名类型,它要么继承自另一个类,要么实现一个接口,这将是一个很酷的特性。

于 2010-11-26T17:10:55.577 回答
3

匿名类型对我们来说是匿名的,而不是 CLR 和编译器。编译器使用了一个有趣的命名,其中包含 <> 在名称中,只有编译器可以做到这一点!也许查克诺里斯......

于 2010-11-26T17:15:12.033 回答