匿名类型可以继承其他类型吗?

时间:2010-11-26 17:09:44

标签: c# .net anonymous-types anonymous-class stringcomparer

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

  

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

这是一个我不熟悉的功能 - 带继承的匿名类型吗?或者通过“匿名类”,作者只是表示“内部类派生自StringComparer,客户端代码不可见”?

4 个答案:

答案 0 :(得分:9)

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

这只是一种内部类型,所以你不知道它的名字:你不能在你的代码中引用确切的类型。

答案 1 :(得分:7)

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

我可以看到,没有什么'匿名',只是它是内部所以你无法从框架外看到它。

答案 2 :(得分:4)

编译器可以创建从其他类型继承的匿名类型 - 您不能。这太糟糕了,实际上创建一个匿名类型是一个很酷的功能,它可以从另一个类继承或实现一个接口。

答案 3 :(得分:3)

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