C#编译器如何使用泛型继承处理嵌套类?
我在继承的工作代码中多次看到以下构造,并试图理解这意味着什么:C#编译器如何使用泛型继承处理嵌套类?,c#,inheritance,C#,Inheritance,我在继承的工作代码中多次看到以下构造,并试图理解这意味着什么: public partial class Parent { public class Child : Child<Parent> { 公共部分类父类 { 公营儿童:儿童 { 类Parent.Child似乎继承自Parent.Child 对我来说,令人困惑的部分是:Child C#编译器如何处理此问题?C#编译器如何处理此问题 您可以将这些类视为3个独立的类: class Parent; class P
public partial class Parent
{
public class Child : Child<Parent>
{
公共部分类父类
{
公营儿童:儿童
{
类Parent.Child
似乎继承自Parent.Child
对我来说,令人困惑的部分是:Child
C#编译器如何处理此问题?C#编译器如何处理此问题
您可以将这些类视为3个独立的类:
class Parent;
class Parent_Child<T>;
class Parent_Child : Parent_Child<Parent>;
类父;
班级家长与子女;
类父\子:父\子;
我假设您正在寻求这种解释。您能更具体地说明您不理解的内容吗?除了泛型的东西之外,这与简单的循环类引用是一样的(比如类
a
有类B
有类a
),这根本不是问题。我不理解您不理解的内容。您没有显示子类
的声明,但假设存在一个,问题是什么?为什么嵌套的非泛型子类
不能继承泛型子类
类(无论声明在哪里)?Child与Child是不同的类-编译器在幕后将其命名为Child`1。因此,Child和Child看起来相似只是巧合。除此之外,由于非泛型子类位于父类中,因此Child和Child不在同一命名空间中