匿名类型可以inheritance其他类型吗?
根据StringComparer.OrdinalIgnoreCase
属性的MSDN文档:
OrdinalIgnoreCase属性实际上返回从StringComparer类派生的匿名类的实例。
这是一个我不熟悉的function – 带inheritance的匿名类型吗? 或者通过“匿名类”,作者只是意味着“从StringComparer
派生的内部类,对客户端代码不可见”?
如果查看StringComparer的源代码,可以看到OrginalIgnoreCase返回OrdinalComparer的实例,该实例派生自StringComparer。
我可以看到,没有任何关于此的“匿名”,只是它是内部的,所以你无法从框架之外看到它。
它不是该术语的正常C#含义中的匿名类型。
它只是一个内部类型,因此您不知道它的名称:您不能在代码中引用确切的类型。
编译器可以创建从其他类型inheritance的匿名类型 – 您不能。 这太糟糕了,实际上创建一个匿名类型是一个很酷的function,它可以从另一个类inheritance或实现一个接口。
匿名类型对我们来说是匿名的 ,而不是CLR和编译器。 编译器使用一个有趣的命名,其名称中包含<>,只有编译器才能这样做! 也许查克诺里斯 ……