控制台应用程序中的对象数组

时间:2010-08-24 12:47:40

标签: c#

我想在控制台应用中创建一个用户数组,但似乎无法正确使用,有人可以帮忙,这是我的代码。

class Program
{
    static void InputUser(User U)
    {           
        Console.WriteLine("Please enter a User:");
        Console.WriteLine("User ID:");
        U.ID = int.Parse(Console.ReadLine());
        Console.WriteLine("Titel:");
        U.Titel = Console.ReadLine();
        Console.WriteLine("Name:");
        U.Name = Console.ReadLine();
        Console.WriteLine("Surname:");
        U.Surname = Console.ReadLine();
        Console.WriteLine("Telephone Number:");
        U.Telephone = int.Parse(Console.ReadLine());
        Console.WriteLine();
    }

    static void Main()
    {
        User[] users = new User[2]
        { 
            InputUser(new User); 
        }           
    }                    
}

4 个答案:

答案 0 :(得分:2)

首先,更改InputUser方法以返回将使用用户输入构造的User对象:

static User InputUser()
{          
    User U = new User();
    Console.WriteLine("Please enter a User:");
    Console.WriteLine("User ID:");
    U.ID = int.Parse(Console.ReadLine());
    Console.WriteLine("Titel:");
    U.Titel = Console.ReadLine();
    Console.WriteLine("Name:");
    U.Name = Console.ReadLine();
    Console.WriteLine("Surname:");
    U.Surname = Console.ReadLine();
    Console.WriteLine("Telephone Number:");
    U.Telephone = int.Parse(Console.ReadLine());
    Console.WriteLine();
    return U;
}

然后调用InputUser方法两次,因为您正在初始化大小为2的User个对象数组:

static void Main()
{
    User[] users = new User[2]
    { 
        InputUser(),
        InputUser()
    }           
}  

答案 1 :(得分:1)

将主要方法更改为:

 static void Main() 
    { 
        User[] users = new User[2];

        for (int i=0;i<users.Length; i++) 
        {  
            users[i] = new User();
            InputUser(users[i]);  
        }            
    } 

答案 2 :(得分:0)

User[] users = new User[2]

只会创建一个User数组,但它不会初始化它们。

对于他们每个人,您需要创建一个用户。

所以在它之后添加一个循环:

        for (int i=0;i<users.Length; i++) 
        {  
            users[i] = InputUser(users[i]); 
        } 

答案 3 :(得分:0)

InputUser需要通过引用传递User对象(ref关键字),或者需要返回User的新实例而不是接受参数。