📜  c# 返回两个值 - C# (1)

📅  最后修改于: 2023-12-03 14:59:43.742000             🧑  作者: Mango

C# 返回两个值

C# 中返回两个值的方法有很多种,这篇文章将介绍其中常用的几种方法。

1. 使用元组(Tuple)

元组是一个可以包含多个不同类型数据的简单数据结构。在 C# 7.0 引入的元组可以非常方便地返回多个值。以下是一个简单的例子。

using System;

public class Example
{
    public static (int, string) GetValues()
    {
        int number = 1;
        string name = "Tom";
        return (number, name);
    }

    public static void Main()
    {
        var values = GetValues();
        Console.WriteLine($"{values.Item1} {values.Item2}"); // 输出: 1 Tom
    }
}

在上面的代码中,我们定义了一个返回类型为元组 (int, string) 的静态方法 GetValues()。在方法中,我们定义了两个变量:一个 int 类型的变量 number 和一个 string 类型的变量 name。最后我们使用元组的语法,将这两个变量作为一个元组返回。在 Main 方法中,我们将这个元组赋值给 values 变量,并使用 Item1 和 Item2 属性来访问元组中的两个值。

2. 使用 out 参数

我们还可以使用 C# 的 out 参数来返回多个值。以下是一个例子。

using System;

class Example
{
    public static void GetValues(out int number, out string name)
    {
        number = 1;
        name = "Tom";
    }

    public static void Main()
    {
        int number;
        string name;
        GetValues(out number, out name);
        Console.WriteLine($"{number} {name}"); // 输出: 1 Tom
    }
}

在上面的代码中,我们定义了一个静态方法 GetValues(),它有两个 out 参数:一个 int 类型的参数 number 和一个 string 类型的参数 name。在方法中,我们将这两个参数的值分别设置为 1 和 "Tom"。在 Main 方法中,我们定义了两个变量 number 和 name,并将它们作为 out 参数传给 GetValues() 方法。在方法调用后,我们就可以像访问普通变量一样访问 number 和 name 变量了。

3. 使用 ValueTuple

除了使用 C# 的元组和 out 参数之外,我们还可以使用 ValueTuple。以下是一个例子。

using System;

class Example
{
    public static ValueTuple<int, string> GetValues()
    {
        int number = 1;
        string name = "Tom";
        return (number, name);
    }

    public static void Main()
    {
        var values = GetValues();
        Console.WriteLine($"{values.Item1} {values.Item2}"); // 输出: 1 Tom
    }
}

在上面的代码中,我们定义了一个返回类型为 ValueTuple<int, string> 的静态方法 GetValues()。在方法中,我们定义了两个变量:一个 int 类型的变量 number 和一个 string 类型的变量 name。最后我们使用 ValueTuple 的语法,将这两个变量作为一个 ValueTuple 返回。在 Main 方法中,我们将这个 ValueTuple 赋值给 values 变量,并使用 Item1 和 Item2 属性来访问 ValueTuple 中的两个值。

总结

以上是 C# 中返回两个值的几种方法。使用元组、out 参数和 ValueTuple 都可以方便地返回多个值。程序员可以根据具体情况选择使用哪种方法。