C# 无法隐式转换类型-c元组

C# 无法隐式转换类型-c元组,c#,C#,所以,问题是:我有一个函数,它接受两个数字,用户在控制台中编写,我想返回这两个数字,所以我决定使用元组 static int InputedData() { int data1, data2; Console.WriteLine("Enter first number:"); data1 = int.Parse(Console.ReadLine()); Console.WriteLine("Enter second number:"); data2 = i

所以,问题是:我有一个函数,它接受两个数字,用户在控制台中编写,我想返回这两个数字,所以我决定使用元组

static int InputedData()
{
    int data1, data2;
    Console.WriteLine("Enter first number:");
    data1 = int.Parse(Console.ReadLine());
    Console.WriteLine("Enter second number:");
    data2 = int.Parse(Console.ReadLine());
    int result = (data1, data2); //Tuples, also tried with var
    return result;
}

您对返回类型在方法签名和返回值中的工作方式有误解

static (int, int) InputedData()
{
    int data1, data2;
    Console.WriteLine("Enter first number:");
    data1 = int.Parse(Console.ReadLine());
    Console.WriteLine("Enter second number:");
    data2 = int.Parse(Console.ReadLine())

    return (data1, data2); 
}
注意元组int的隐式定义,int在方法签名和定义返回值中。您不能执行int data=data1,data2,因为您试图将元组塞入int

如果需要,还可以命名元组:

static (int a, int b) InputedData()
{
    //...
}
这使得在另一种方法中使用这些值时,它们的含义更加明显。如果不给它们命名,默认名称是Item1和Item2。

因为int不是Tupleint,而不是两个int的元组。它只是一个int.static intx,inty InputedData{/*…*/返回data1,data2;}。此外,如果是一个单词,输入有两个T。