一开始,我有一个飞机结构。我需要(在结构之外)声明一个数组并编写一个函数,该函数从键盘读取一个结构数组(n 个)并返回一个 Airplane 类型的结构数组,并在 void menu() 中调用此函数。编译器对我发誓..
class Program
{
Airplane[] arr;
static void menu()
{
int q;
WriteLine("Что вы хотите сделать?? ");
do {
q = int.Parse(ReadLine());
switch (q)
{
case 1:
{
//arr = vvod(arr);
break;
}
case 2:
{
arr = ReadAirplaneArray(arr);//тут компилятор пишет ошибку (пишет "Требуется ссылка на объект")
break;
}
}
} while (q != 0);
}
static int ReadAirplaneArray(Airplane [] arr)
{
int n;
WriteLine("Сколько рейсов вы хотите ввести? ");
n = int.Parse(ReadLine());
arr = new Airplane[n];
return arr;// и ещё вот тут вот тоже подчёркивает красным
}
}
据我了解,您使用了过量的 C++,并且您想从方法中返回一个指针,在 C# 中它不是这样工作的,但它是这样工作的:
要创建一个数组并在方法外为其赋值,从方法中,您可以通过引用传递它
ref嗯,这就是如何使用
由于您的方法是静态的,因此您需要将它们设为非静态,或将数组设为静态。
甚至更好,因为你已经有一个数组作为参数传递,你可以在方法中声明它,而不是在静态字段中