好的,我有一个我想要创建的简单程序,其中基本上有两个类 - bird
和egg
。在Program
课程中,我设置list
bird
和list
egg
- 两者都在main
方法之上声明在Program
课程中。 bird
对象有一个名为layEgg
的方法,我想将egg
对象添加到list
的{{1}}。但我不确定如何从父类访问egg
。
这甚至可能吗?
答案 0 :(得分: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
}
}
答案 1 :(得分: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#有多熟悉......:/