好的,所以我有一个我正在尝试创建的简单程序,其中基本上有两个类 -bird
和egg
. 在Program
类中,我设置了 a list
ofbird
和 a list
of egg
- 两者都main
在类中的方法之上声明Program
。该bird
对象有一个名为的方法layEgg
,我想将一个新egg
对象添加到list
of 中egg
。但我不太确定如何list
从父类访问 a 。
这甚至可能吗?
我可能错了,但您的方法似乎是错误的。尝试这个:
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# 有多熟悉......:/
如果我理解正确,您所说的父类并不是真正的父类。也就是说,您并不是说该类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
}
}