c#:如何访问'parent'来自另一个班级的班级
本文关键字:另一个 parent 访问 何访问 | 更新日期: 2023-09-27 18:04:00
好的,所以我有一个简单的程序,我试图创建它基本上有两个类- bird
和egg
。在Program
类中,我设置了bird
的list
和egg
的list
,它们都在Program
类的main
方法上面声明。bird
对象有一个名为layEgg
的方法,我想在egg
的list
中添加一个新的egg
对象。但我真的不确定如何从父类访问list
。
这可能吗?
如果我理解正确的话,你所说的父类并不是真正的父类。也就是说,你并不是说类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#有多熟悉…:/