如何在C#中向调用方法返回多个值?


元组可以在C#中用来从方法返回多个值。它允许我们存储一个数据集,该数据集包含多个可能相互关联也可能不相关的多个值。最新的元组称为ValueTuple,在C# 7.0(.NET Framework 4.7)中引入。

ValueTuple既高效,又可以通过程序员选择的名称进行引用。ValueTuple提供了一种轻量级的机制,可以从现有方法返回多个值。ValueTuple可在**System.ValueTuple NuGet包**中获得。

public (int, string, string) GetPerson() { }

示例1

using System;
namespace DemoApplication{
   class Program{
      public static void Main(){
         var fruits = GetFruits();
         Console.WriteLine($"Fruit Id: {fruits.Item1}, Name: {fruits.Item2}, Size:
         {fruits.Item3}");
         Console.ReadLine();
      }
      static (int, string, string) GetFruits(){
         return (Id: 1, FruitName: "Apple", Size: "Big");
      }
   }
}

输出

以上代码的输出为:

Fruit Id: 1, Name: Apple, Size: Big

在上面的例子中,我们可以看到GetFruits()方法返回多个值(int, string, string)。元组的值可以通过fruits.Item1, fruits.Item2, fruits.Item3访问。

我们也可以使用解构来检索单个成员。

(int FruitId, string FruitName, string FruitSize) = GetFruits();

示例2

using System;
namespace DemoApplication{
   class Program{
      public static void Main(){
         (int FruitId, string FruitName, string FruitSize) = GetFruits();
         Console.WriteLine($"Fruit Id: {FruitId}, Name: {FruitName}, Size:
         {FruitSize}");
         Console.ReadLine();
      }
      static (int, string, string) GetFruits(){
         return (Id: 1, FruitName: "Apple", Size: "Big");
      }
   }
}

输出

以上代码的输出为:

Fruit Id: 1, Name: Apple, Size: Big

更新于:2020年8月19日

1K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.