-4

好的,所以我有一个我正在尝试创建的简单程序,其中基本上有两个类 -birdegg. 在Program类中,我设置了 a listofbird和 a listof egg- 两者都main在类中的方法之上声明Program。该bird对象有一个名为的方法layEgg,我想将一个新egg对象添加到listof 中egg。但我不太确定如何list从父类访问 a 。

这甚至可能吗?

4

2 回答 2

0

我可能错了,但您的方法似乎是错误的。尝试这个:

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# 有多熟悉......:/

于 2013-03-14T16:30:09.623 回答
0

如果我理解正确,您所说的父类并不是真正的父类。也就是说,您并不是说该类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
    }
  }
于 2013-03-14T16:19:46.197 回答