C#:如何将对象数组作为参数传递

时间:2019-12-21 22:24:07

标签: c# arrays

我是C#(以及其他所有编码语言)的新手,我的任务是创建一个对象数组,并将该数组作为参数传递给另一个将显示所有元素的方法。

我的问题很简单,可能很愚蠢。我试图将数组返回到Main并调用displayAll()。我只是不知道在参数括号内放什么。

        static void Main(string[] args)
        {
            addnew();
            displayAll(); //how to write object array as argument
        }

        public static object[] addnew()
        {
            int i;
            Console.WriteLine("How many Clients would you like to add? ");
            int size = Convert.ToInt32(Console.ReadLine());
            Client[] clArray = new Client[size];

                for (i = 0; i < clArray.Length; i++)
                {
                    Client client = new Client();

                    Console.WriteLine($"Client " + (i + 1));
                    Console.WriteLine("Enter First Name: ");
                    client.firstName = Console.ReadLine();
                    Console.WriteLine("Enter Last Name: ");
                    client.lastName = Console.ReadLine();
                    Console.WriteLine("Enter Client ID: ");
                    client.clientID = (Console.ReadLine());
                    Console.WriteLine("Enter Purchase Amount: ");
                    client.purchase = Convert.ToInt32(Console.ReadLine());


                    clArray[i] = client;

                }
            return clArray;
        }
        public static void displayAll(Client[] x)
        {

            for (int i = 0; i < x.Length; i++)
            {
                object client = x[i];
                Console.WriteLine(client);
            }
        }


2 个答案:

答案 0 :(得分:1)

您需要将变量放在括号中,从而使调用看起来类似于方法声明。这种相似性就是为什么声明和调用方法都使用()的原因。

在这种情况下,您可以调用第一个方法并将其返回值直接通过传递给第二个方法

displayAll(addnew());

这会将addnew的返回值发送到displayAll而不将其保存到变量中。为了调试和提高可读性,通常需要保存到变量并在其中传递那个

var data = addnew();
displayAll(data);

答案 1 :(得分:0)

您可以使用以下代码调用该方法:

displayAll(addnew());