Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#编译器如何使用泛型继承处理嵌套类?_C#_Inheritance - Fatal编程技术网

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不在同一命名空间中