繁体   English   中英

我可以在C#中为一个班级派生一个孙子吗?

[英]Can I derive a grandchild for a class in C#?

我想知道,C#是否支持孙子类。 我想做下一个:

class Base
{
}

class DerivedFromBase : Base
{
}

class Grandchild : DerivedFromBase //I recieve an error in this class
{
}

在Java中,我可能会这样做,但C#在Grandchild类中生成错误。 它只支持一个派生类吗?

不,请发布您的错误。 另请注意,您的基础已经从Object派生,因此DerivedFromBase是一个孙子。

C#支持(实际上)无限级别的派生。 如果您收到错误,则由其他原因引起。

它只支持一个派生类,但该类也可以是派生类。 就像在Java中一样。 你的问题在别处。

使用最少的代码准备一个可以重现您的情况的问题,并将其与编译器输出一起发布。

C#允许这样,所以应该没有错误。

我复制了你向我们展示的内容,添加了一些代码,并且它有效。 所以它必须是导致错误的其他东西。

点击这里,这有效:

using System;

public class Test
{
  public static void Main()
  {
      Grandchild g = new Grandchild();
  }
}

class Base
{
    public int i=10;
}

class DerivedFromBase : Base
{
    public DerivedFromBase()
    {
      Console.WriteLine(i);
    }
}

class Grandchild : DerivedFromBase 
{
   public Grandchild()
   {
      Console.WriteLine(i);
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM