从 C# 中的函数返回多个值
本教程将介绍从 C# 函数中返回多个值的方法。
使用 C# 中的数组从函数中返回多个值
数组数据结构体在 C# 中存储相同数据类型的多个值。我们可以使用数组从一个函数返回多个值。以下代码示例向我们展示了如何使用数组从 C# 中的函数返回多个值。
using System;
namespace return_multipe_values {
class Program {
public static int[] compare(int a, int b) {
int[] arr = new int[2];
if (a > b) {
arr[0] = b;
arr[1] = a;
} else {
arr[0] = a;
arr[1] = b;
}
return arr;
}
static void Main(string[] args) {
int[] returnvalue = Program.compare(10, 12);
Console.WriteLine("Smaller Value = {0}", returnvalue[0]);
Console.WriteLine("Larger Value = {0}", returnvalue[1]);
}
}
}
输出:
Smaller Value = 10
Larger Value = 12
我们用 C# 中的数组返回类型从 compare()
函数中返回了 2 个整数值。如果必须返回相同数据类型的多个值,则此方法很有用。如果要返回不同数据类型的多个值,则不能使用数组,因为数组仅存储相同数据类型的值。
使用 C# 中的带有结构体/类对象的函数返回多个值
结构体和类用于对相关值进行分组。这些值不必具有相同的数据类型。因此,我们可以使用结构体或类对象从 C# 中的函数返回多个值。以下代码示例向我们展示了如何使用结构体对象从 C# 中的函数返回多个值。
using System;
namespace return_multipe_values {
struct Values {
public int x;
public int y;
}
class Program {
public static Values comparevalues(int a, int b) {
Values V = new Values();
if (a > b) {
V.x = b;
V.y = a;
} else {
V.x = a;
V.y = b;
}
return V;
}
static void Main(string[] args) {
Values returnedvalues = Program.comparevalues(10, 12);
Console.WriteLine("Smaller Value = {0}", returnedvalues.x);
Console.WriteLine("Larger Value = {0}", returnedvalues.y);
}
}
}
输出:
Smaller Value = 10
Larger Value = 12
我们首先定义一个结构体 Values
,其中包含我们要从函数中返回的值。然后,我们从 comparevalues()
函数以 Values
结构体返回了多个值,作为 C# 中的返回类型。返回的值还必须存储到相同结构体的实例中。
通过使用类作为函数的返回类型,也可以实现此目标。以下代码向我们展示了如何使用类从 C# 中的函数返回多个值。
using System;
public class Sample {
int x;
int y;
public void setxy(int v, int u) {
x = v;
y = u;
}
public void getxy() {
Console.WriteLine("The smaller value = {0}", x);
Console.WriteLine("The greater value = {0}", y);
}
}
public class Program {
public static Sample compare(int a, int b) {
Sample s = new Sample();
if (a > b) {
s.setxy(b, a);
} else {
s.setxy(a, b);
}
return s;
}
public static void Main() {
Sample returnedobj = Program.compare(10, 12);
returnedobj.getxy();
}
}
输出:
The smaller value = 10
The greater value = 12
我们首先定义一个样本
类,其中包含要从函数中返回的值。然后,我们从 compare()
函数返回多个值,并以 Sample
类作为 C# 中函数的返回类型。返回的值还必须存储到同一类的实例中。尽管这两种方法都非常适合从函数返回不同数据类型的多个值,但是编写整个类或结构体以仅从函数返回多个值非常繁琐且耗时。
在 C# 中使用 Tuples<T1,T2>
类从函数返回多个值
元组是在 C# 中具有特定编号和特定值顺序的数据结构。元组可以具有不同数据类型的多个值。Tuple<T1,T2>
类可用于定义自定义元组具有特定顺序的用户定义数据类型。以下代码示例向我们展示了如何使用 C# 中的 Tuple<T1,T2>
类从函数返回多个值。
using System;
public class Program {
public static Tuple<string, string, int> ReturnMultipleValues() {
var result = Tuple.Create<string, string, int>("value1", "value2", 3);
return result;
}
public static void Main() {
var returnedvalues = ReturnMultipleValues();
Console.WriteLine(returnedvalues);
}
}
输出:
(value1, value2, 3)
通过用 Tuple<string, string, int>
指定函数的返回类型,我们从 ReturnMultipleValues()
函数返回多个值。这意味着 ReturnMultipleValues()
函数将返回 3 个值,其中 string
数据类型的前两个值和 int
数据类型的最后一个值。此返回值可以保存到结构体相似的元组中,也可以保存为 var
类型的变量。
在 C# 中使用 (T1,T2)
表示法从函数中返回多个值
上面讨论了如何使用 Tuple<T1,T2>
类简化从函数返回多个值的过程,可以通过声明元组的 (T1, T2)
标记进一步缩短。(T1, T2)
表示法也通过缩短代码来实现与 Tuple<T1,T2>
类相同的功能。下面的编码示例向我们展示了如何使用 (T1, T2)
表示法从 C# 中的函数返回多个值。
using System;
public class Program {
public static (string, string, int) ReturnMultipleValues() {
return ("value1", "value2", 3);
;
}
public static void Main() {
(string val1, string val2, int val3) = ReturnMultipleValues();
Console.WriteLine("{0} {1} {2}", val1, val2, val3);
}
}
输出:
value1 value2 3
在上面的代码中,我们以 C# 中的 (T1,T2)
表示法从 ReturnMultipleValues()
函数返回了多个值。
相关文章
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:198 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:171 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中将 List<string>转换为字符串
发布时间:2024/03/16 浏览次数:187 分类:编程语言
-
在 C# 中,有两种主要方法可用于将 List
转换为字符串变量,Linq 方法和 String.Join()函数。
在 C# 中发出 HTTP POST Web 请求
发布时间:2024/02/04 浏览次数:131 分类:编程语言
-
在 C# 中,可以使用 3 种主要方法来发出 HTTP POST Web 请求:WebClient 类,HttpWebRequest 类和 HttpClient 类。本教程将讨论在 C# 中发出 HTTP POST Web 请求的方法。使用 C# 中的 WebClient 类发出 HTTP POST Web 请求
在 C# 中运行命令提示符命令
发布时间:2024/02/04 浏览次数:130 分类:编程语言
-
Process 类可用于在 C# 中运行命令提示符命令。在 C# 中使用 Process.Start() 函数运行命令提示符命令
在 C# 中调整图像大小
发布时间:2024/02/04 浏览次数:203 分类:编程语言
-
有两种主要方法可用于在 C# 中调整图像的大小,Bitmap 类构造函数和 graphics.DrawImage()函数。在本教程中,我们将讨论在C#中调整图像大小的方法。我们将带您完成整个过程,从加载原始图像到保
在 C# 中下载图片
发布时间:2024/02/04 浏览次数:138 分类:编程语言
-
有 3 种主要方法可用于下载 C# 中的图片,WebClient.DownloadFile()函数,Bitmap 类和 Image.FromStream()函数。在 C# 中使用 WebClient 类下载图片 WebClient 类提供了用于向 C# 中的 URL 发送数据和从 URL 接收数据
在 C# 中使用秒表
发布时间:2024/02/04 浏览次数:139 分类:编程语言
-
我们可以使用 Stopwatch 类来计算 C# 中的经过时间。使用 C# 中的秒表类计算经过时间 Stopwatch 类在 C# 中准确测量经过的时间。
在 C# 中获取可执行路径
发布时间:2024/02/04 浏览次数:200 分类:编程语言
-
有 3 种主要方法可用于获取 C# 中程序的可执行路径,即 Assembly 类,AppDomain 类和 Path 类。本教程将介绍获取 C# 代码的可执行路径的方法。使用 C# 中的 Assembly 类获取可执行路径