Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不为返回类型或OUT参数创建类的情况下,是否可以从方法返回多个值?_C# - Fatal编程技术网

C# 在不为返回类型或OUT参数创建类的情况下,是否可以从方法返回多个值?

C# 在不为返回类型或OUT参数创建类的情况下,是否可以从方法返回多个值?,c#,C#,如果我有这样的方法: private void RunExecute() { var rc1 = doStuff(2); var rc2 = doStuff(1); } 有没有什么方法可以同时返回rc1和rc2而不是void,而无需创建特殊类并将其用作返回类型,也无需将rc1和rc2声明为out参数?您可以使用元组 private (T,T) RunExecute() { var rc1 = doStuff(2); var rc2 = doStuff(1);

如果我有这样的方法:

private void RunExecute()
{
    var rc1 = doStuff(2);
    var rc2 = doStuff(1);
}
有没有什么方法可以同时返回rc1和rc2而不是void,而无需创建特殊类并将其用作返回类型,也无需将rc1和rc2声明为out参数?

您可以使用元组

private (T,T) RunExecute()
{
    var rc1 = doStuff(2);
    var rc2 = doStuff(1);
    return (rc1,rc2)
}
其中T是doStuff返回的类型

例如,如果doStuff返回int

private (int,int) RunExecute()
要调用该方法并使用结果,可以使用语法

var (p1,p2) = RunExecute();
使用元组的另一种方法是命名元组元素。例如,在声明期间

private (int returnValue1,int returnValue2) RunExecute()
并称之为

var result  = RunExecute();
Console.WriteLine(result.returnValue1);
Console.WriteLine(result.returnValue2);

PS:如果您正在使用C#请阅读并展示您的尝试。请参考以下答案:您能否展示一个我将如何调用和使用RunExecute的示例。Thanks@Alan2我已经用方法调用和如何获取结果更新了答案。请查收
private Tuple<int, int> RunExecute()