如何在C#7中返回多个值?

时间:2017-03-21 11:50:15

标签: c# .net c#-7.0

一位队友告诉我,在C#7.0中,它本身可以从函数中返回多个值。任何人都能提供一些例子吗?感谢

3 个答案:

答案 0 :(得分:115)

原生是什么意思?

Actualy C#7有一个非常有用的新功能,通过元组类型元组文字,您可以从方法返回多个值。

考虑以下功能:

(string, string, string) MyCoolFunction() // tuple return type
{   
    //...        
    return (firstValue, secondValue, thirdValue);
}

可以这样使用:

var values = MyCoolFunction();
var firstValue = values.Item1;
var secondValue = values.Item2;
var thirdValue = values.Item3;

或者使用解构语法

(string first, string second, string third) = MyCoolFunction();

//...

var (first, second, third) = MyCoolFunction(); //Implicitly Typed Variables

花一些时间查看Documentation,他们有一些非常好的例子(这个答案是基于他们的!)。

答案 1 :(得分:20)

您正在寻找元组。这是一个例子:

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType="text"
    android:text="Search"
    android:ems="10"
    android:id="@+id/SearchText"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<Button
    android:text="Search"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:id="@+id/button2" />

http://www.thomaslevesque.com/2016/07/25/tuples-in-c-7/

中窃取的示例

答案 2 :(得分:0)

你也可以这样实现:

public class Program
{
    public static void Main(string[] args)
    {

        var values=GetNumbers(6,2);
        Console.Write(values);


    }

    static KeyValuePair<int,int> GetNumbers(int x,int y)
    {
        return new KeyValuePair<int,int>(x,y);
    }
}