如何将多个变量从方法传递给Main

时间:2016-12-23 20:37:03

标签: c#

请关闭以避免任何其他不必要的下注

我很震惊,我无法在SO上找到这个,所以我想我的问题是可以接受的......

最初,我想从一个方法将多个变量传递给Main,但它只允许一个返回类型,所以我将方法拆分为两个方法,返回两个数据类型但我想将它们发送到Main所以我可以在方法中分配后显示它们......

CODE

      static void Main(string[] args)
    {
        GetID();
        Console.WriteLine("Your id is {0} and your password is {1}");            
    }

    public static int GetID()
    {

        Console.WriteLine("Please enter your ID");
       int id = int.Parse(Console.ReadLine());
        Console.WriteLine("You entered {0} as the id \t, is this correct? Y/N", id);
        string response = Console.ReadLine();
        switch (response)
        {
            case "N":
                GetID();
                break;
            case "Y":
                Console.WriteLine("Accepted");
                GetPass(ref id);
                break;
            default:
                Console.WriteLine("Incorrect answer");
                break;
        }
        return id;
    }
    public static string GetPass(ref int id)
    {
        Console.WriteLine("Please enter your password");
        string password = Console.ReadLine();
        Console.WriteLine("You entered {0} as the id \t, is this correct? Y/N", password);
        string response = Console.ReadLine();
        switch (response)
        {
            case "N":
                GetPass(ref id);
                break;
            case "Y":
                Console.WriteLine("Accepted");
                break;
            default:
                Console.WriteLine("Incorrect answer");
                break;
        }
        return password;
    }

经过长时间的中断后我回到了C#,这个简单的问题让我很生气,所以我为这个问题的低质量能力道歉

4 个答案:

答案 0 :(得分:2)

在打印到控制台之前,您可以使用变量在main中分配返回类型吗?

static void Main(string[] args)
{
    var id = GetID();
    var password = GetPass(ref id);
    Console.WriteLine("Your id is {0} and your password is {1}", id, password);            
}

答案 1 :(得分:1)

不要在单独的调用中返回多个值,而是考虑创建包含多个值的对象类型,并返回该对象类型的实例。

答案 2 :(得分:1)

您可以使用out参数从方法调用中返回多个值:

例如:

public void MyMethod(out string first, out string second)
{
    first = "some";
    second = "thing";
}

你可以打电话如下:

string f;
string s;
MyMethod(out f, out s);

Some info on out can be found here:

And the difference between out and ref:

答案 3 :(得分:0)

你必须在下面的代码中进行更改才能生效。

True