并非所有代码路径都返回值,我该如何解决?

时间:2019-12-12 10:12:28

标签: c#

我创建了一个数据类型为“ Persoon”的数组。我正在尝试获取方法'ReadPerson()'以返回'Persoon'的3个对象。通过返回数组“ personen”,我收到错误消息“无法将类型'Persoon []'转换为'Persoon'。我对编程很陌生,所以我仍然不确定如何正确使用数组和结构。我尝试过返回personen [i],但在for循环之外当然不会定义“ i”,我该如何返回“ Persoon”的3个对象?(personen [1],personen [2],personen [3])

    Persoon ReadPerson()
    {
        Persoon[] personen = new Persoon[3];

        for (int i = 0; i < personen.Length; i++)
        {
            personen[i].FirstName = LeesString("Enter first name: ");
            personen[i].SecondName = LeesString("Enter second name: ");
            personen[i].Residence = LeesString("Enter residence: ");
            personen[i].Age = LeesInt("Enter age: ", 0, 120);
            personen[i].Gender = LeesGeslacht("Enter gender (m/f): ");
            Console.Write("\n");
        }
        return personen[i];
    }

    void PrintPerson(Persoon p)
    {
        Console.Write("\n");

        Console.Write(p.FirstName + " " + p.SecondName + " ");
        PrintGeslacht(p.Gender);

        Console.Write("\n");
        Console.WriteLine("{0} jaar, {1}", p.Age, p.Residence);
    }

struct Persoon
{
    public string FirstName;
    public string SecondName;
    public string Residence;
    public int Age;
    public GeslachtType Gender;
}

1 个答案:

答案 0 :(得分:4)

目前,您的for循环只会执行一次,然后返回第一个人。

您将收到“并非所有代码路径都返回值”错误,因为这正是发生的情况,方法的路径没有返回就结束了,但是方法签名需要返回类型。

您似乎想要这样的东西-

POST