C#可以决定赋值给哪个变量?

时间:2017-06-28 12:06:25

标签: c# variables if-statement types

有没有办法编写代码,以便当用户输入字符串或数字时,程序将选择最合适的已声明的可用变量?

伪代码示例:

static void Main()
{
    int A;
    string B;

    Console.Write("enter something: ");

    if (user enters a number)
        A = int.Parse(Console.ReadLine());
    else
        B = Console.ReadLine();
}

2 个答案:

答案 0 :(得分:3)

简单地说,因为Console.ReadLine是接收用户输入的方式,并且因为它始终返回string,无论如何:不,你必须自己解析字符串作为数字,然后自己将它分配给最合适的变量。

您可以使用int.TryParse执行此操作,如果给定的字符串可以解析为(整数)数字,则返回true,并将其分配给同一行中的第二个out参数:

static void Main()
{
    Console.Write("enter something: ");
    string B = Console.ReadLine();
    if (int.TryParse(B, out int A))
        Console.WriteLine($"Yay, user entered number {A}.");
    else
        Console.WriteLine($"Nay, user entered a boring string {B}.");
}

答案 1 :(得分:1)

您可以让int.TryParse()决定:

int A;
string B;

string userinput = Console.ReadLine();

// if parsing to int fails, assign to B
if (!int.TryParse(userinput, out A)
{
    B = userinput;
}