根据StringComparer.OrdinalIgnoreCase
属性的MSDN文档:
OrdinalIgnoreCase属性实际上返回从StringComparer类派生的匿名类的实例。
这是一个我不熟悉的功能 - 带继承的匿名类型吗?或者通过“匿名类”,作者只是表示“内部类派生自StringComparer
,客户端代码不可见”?
答案 0 :(得分:9)
这不是该术语正常C#含义中的匿名类型。
这只是一种内部类型,所以你不知道它的名字:你不能在你的代码中引用确切的类型。
答案 1 :(得分:7)
如果查看StringComparer的源代码,可以看到OrginalIgnoreCase返回OrdinalComparer的实例,该实例派生自StringComparer。
我可以看到,没有什么'匿名',只是它是内部所以你无法从框架外看到它。
答案 2 :(得分:4)
编译器可以创建从其他类型继承的匿名类型 - 您不能。这太糟糕了,实际上创建一个匿名类型是一个很酷的功能,它可以从另一个类继承或实现一个接口。
答案 3 :(得分:3)
匿名类型匿名给我们的不是CLR和编译器。编译器使用一个有趣的命名,其中包括<>在名称中,只有编译器可以做到这一点!并且也许是查克诺里斯 ......