我不明白为什么函数f.Display_Family(f);
没有显示名称。
我在该代码中错过了什么?
namespace Field
{
struct Person
{
public string name;
}
struct Family
{
public Person Father;
public Person Mother;
public void Create_Family()
{
Family f;
Console.WriteLine("give name and family name");
f.Father.name = Console.ReadLine();
f.Mother.name = Console.ReadLine();
}
public void Display_Family(Family f)
{
Console.WriteLine(f.Father.name);
Console.WriteLine(f.Mother.name);
}
}
class Program
{
static void Main(string[] args)
{
Family f = new Family();
f.Create_Family();
f.Display_Family(f);
}
}
}
答案 0 :(得分:3)
此方法有误:
public void Create_Family()
{
Family f;
Console.WriteLine("give name and family name");
f.Father.name = Console.ReadLine();
f.Mother.name = Console.ReadLine();
}
您要在此函数中创建另一个系列,对其进行初始化并放弃。您原来的家庭结构未修改!
更好的
public void Create_Family()
{
Console.WriteLine("give name and family name");
Father.name = Console.ReadLine();
Mother.name = Console.ReadLine();
}
同样,方法Display_Family
实际上不应该带有参数,因为它可以完美地在当前实例上工作。只需使用
public void Display_Family()
{
Console.WriteLine(Father.name);
Console.WriteLine(Mother.name);
}
并在不带参数的情况下调用它。
祝你学习顺利!
此外,您应该切换到使用类,因为家庭是具有个性的“对象”:尽管具有相同的成员名称,不同的家庭却是不同的对象。