我可以在c#中派生类的孙子吗?

本文关键字:派生 我可以 | 更新日期: 2023-09-27 18:12:02

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

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

在Java中我可能会这样做,但是c#会在孙辈类中产生错误。它只支持一个派生类吗?

我可以在c#中派生类的孙子吗?

不,请贴出你的错误。还要注意,您的基已经派生自Object,因此DerivedFromBase是孙子。

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);
   }
}

c#支持(实际上)无限级别的派生。如果你得到一个错误,它是由其他东西引起的

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

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