从静态函数返回对象数组

hen*_* pf 0 c# arrays object

我正在制作一个基本的Visual Studio 项目。最简单的解释方法是显示代码。

using System;
using System.Collections.Generic;

namespace testing
{
    class Program
    {
        static void Main(string[] args)
        {

            int amountOfCars = getAmountOfCars();
            Car[] myCars = createCars(amountOfCars);

        }

        public static int getAmountOfCars (){
            Console.WriteLine("Amount of Cars to enter");
            int amountOfCars = Convert.ToInt32(Console.ReadLine());
            return amountOfCars;
        }


        public static Car createCars(int amountOfCars)

        {
            Car[] myCars = new Car[amountOfCars];
            for (int i = 0; i < amountOfCars; i++)
            {
                Console.WriteLine("Enter brand");
                string brand = Convert.ToString(Console.ReadLine());

                Console.WriteLine("Enter amount of wheels");
                int amountOfWheels = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("Enter amount of seats");
                int amountOfSeats = Convert.ToInt32(Console.ReadLine());

                myCars[i] = new Car(brand, amountOfWheels, amountOfSeats);
            }
            return myCars[amountOfCars];

        }
    }
}

Run Code Online (Sandbox Code Playgroud)

这条线

 Car[] myCars = createCars(amountOfCars);
Run Code Online (Sandbox Code Playgroud)

抛出以下错误:

无法将类型 testing.Car 隐式转换为 testing.Car[]

所以,我然后尝试这个来转换

 Car[] myCars = (Car[]) createCars(amountOfCars);
Run Code Online (Sandbox Code Playgroud)

但它仍然抛出错误。

本质上,我只是想返回arrayof objectsfromcreatecar函数,以便它可以在其余代码中使用。

解决此问题的最佳做法是什么?

Len*_*art 5

您需要从 createCars() 返回一个数组:

public static Car[] createCars(int amountOfCars)

    {
        Car[] myCars = new Car[amountOfCars];
        for (int i = 0; i < amountOfCars; i++)
        {
            Console.WriteLine("Enter brand");
            string brand = Convert.ToString(Console.ReadLine());

            Console.WriteLine("Enter amount of wheels");
            int amountOfWheels = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Enter amount of seats");
            int amountOfSeats = Convert.ToInt32(Console.ReadLine());

            myCars[i] = new Car(brand, amountOfWheels, amountOfSeats);
        }
        return myCars;

    }
Run Code Online (Sandbox Code Playgroud)