c#:如何访问'parent'来自另一个班级的班级

本文关键字:另一个 parent 访问 何访问 | 更新日期: 2023-09-27 18:04:00

好的,所以我有一个简单的程序,我试图创建它基本上有两个类- birdegg。在Program类中,我设置了birdlistegglist,它们都在Program类的main方法上面声明。bird对象有一个名为layEgg的方法,我想在egglist中添加一个新的egg对象。但我真的不确定如何从父类访问list

这可能吗?

c#:如何访问'parent'来自另一个班级的班级

如果我理解正确的话,你所说的父类并不是真正的父类。也就是说,你并不是说类bird继承自父类;你的意思是在类中声明。例如:

class Program
{
  private class egg { }
  private static List<egg> listOfEggs;
  private class bird
  {
    public void layEgg()
    {
      // How to access listOfEggs from here?
    }
  }
  private static List<bird> listOfBirds;
  static void Main(string[] args)
  {
    // Initialise the lists, then:
    listOfBirds[0].layEgg();
  }
}

如果是这样,答案很简单:listOfBirds可以直接访问,因为它在bird类中是完全可见的,即使一切都是private:

  private class bird
  {
    public void layEgg()
    {
      listOfEggs.Add(new egg()); // No problem
    }
  }

我可能错了,但看起来你的方法是错误的。试试这个:

namespace BirdsAndEggs
{
    public class Bird
    {
        public string Name { get; set; }
        public List<Egg> Eggs { get; set; }
    }
    public class Egg
    {
        public string Size { get; set; }
    }
    public class Main
    {
        List<Bird> TheBirds = new List<Bird>();
        void main()
        {
            TheBirds.Add(new Bird()
            {
                Name = "Bird 1"
            });
            TheBirds.Add(new Bird()
            {
                Name = "Bird 2"
            });
            TheBirds.Add(new Bird()
            {
                Name = "Bird 3"
            });
            layEgg(0, "Large");
            layEgg(1, "Medium");
            layEgg(2, "Small");
        }
        void layEgg(int i, string size)
        {
            TheBirds[i].Eggs.Add(new Egg() { Size = size });
        }
    }
}

我的意思是,这是你想要的一个非常随机的猜测,我甚至不知道你对c#有多熟悉…:/