随笔 - 33  文章 - 1  评论 - 17  阅读 - 12万

C#函数多返回值的方法

C#以前都是不支持多返回值,当需要返回多个值的时候,就会感觉比较麻烦,通常的做法有

1.采用ref,out 关键字返回

2.定义类或者结构体 返回对象

 C# 6.0出来了新的语法 Tuple 支付返回多个值

示例:

复制代码
 1 class Demo
 2     {
 3         public void Run()
 4         {
 5             var num = Exec(5, 6);
 6             Console.WriteLine(num.Item1); //第一个返回值
 7             Console.WriteLine(num.Item2); //第二个返回值
 8 
 9             Console.WriteLine();
10             var num2 = Exec2(5, 6);
11             Console.WriteLine(num2.Item1); //第一个返回值
12             Console.WriteLine(num2.Item2); //第二个返回值
13             Console.WriteLine(num2.Item3); //第三个返回值
14         }
15 
16         public Tuple<int, int> Exec(int a, int b)
17         {
18             Tuple<int, int> tup = new Tuple<int, int>(a + b, a * b);
19             return tup;
20         }
21 
22         public Tuple<int, int, int> Exec2(int a, int b)
23         {
24             Tuple<int, int, int> tup = new Tuple<int, int,int>(a + b, a * b, a - b);
25             return tup;
26         }
27 
28     }
复制代码

结果:

 

这样就返回多个值了。。

 

参考:http://204367.vhost447.cloudvhost.net/Article.aspx?id=cbd9ec8b-2329-49e0-9719-1cf48fd64d6e

posted on   守护者  阅读(14328)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示