C# 从基类C继承#

C# 从基类C继承#,c#,C#,不确定我做错了什么,但属性不是直接从基类继承的。如果有: public class Fruit{ string[] GroupFruit{get;set;} public Fruit() { } } public class Citrus : Fruit{ GroupFruit = new string[]{"lemon", "lime", "orange"} public Citrus() { } } 我似乎不能在柑橘课上设置集体水果。

不确定我做错了什么,但属性不是直接从基类继承的。如果有:

public class Fruit{
   string[] GroupFruit{get;set;}

   public Fruit()
   {
   }
}

public class Citrus : Fruit{
    GroupFruit = new string[]{"lemon", "lime", "orange"}

   public Citrus()
   {
   }
}
我似乎不能在柑橘课上设置集体水果。 谢谢


Jerome

您需要在子类的构造函数中初始化它,并且它必须至少受到
保护

public class Fruit
{
    protected string[] GroupFruit { get; set; }

    public Fruit()
    {
    }
}

public class Citrus : Fruit
{

    public Citrus()
    {
        base.GroupFruit = new string[] {"lemon", "lime", "orange"};
    }
}

这是因为您的
GroupFruit
属性是私有的,这是类成员的默认访问权限。您不能像这样分配继承的成员。不要说“我似乎不能”,请阅读并包含您收到的完整错误消息,包括您对它们的研究。但第一个问题是您在方法之外编写了初始化代码。将基类
中的属性设置为protected
public
并将
中的初始化代码移动到构造函数中。您还可以将值传递给基类构造函数,并将属性保持为private(或更好地使用该字段)。或者可以从基类中删除空构造函数