元组

private (int number,int newNumber) CaculateByTuple(int number)
{
return (number: number,
newNumber: number * number);
} private List<(int number, int newNumber)> CaculateByTuple(List<int> numbers)
{
return numbers.AsEnumerable().Select(
x =>
{
return (number: x,
newNumber: x * x);
})
.ToList();
}

匿名对象

private dynamic CaculateByDynamic(int number)
{
return new
{
number = number,
newNumber = number * number
};
}

参考资料
C# 匿名类型:https://www.w3cschool.cn/csharp/csharp-anonymous-types.html

ref&out

ref
private int CaculateByRef(ref int number)
{
//对于ref
//在进入方法CaculateByRef之前,number必须赋值
//在方法CaculateByRef里面,number可以不进行修改
number = 2;
return number * number;
}
out
private int CaculateByOut(out int number)
{
//对于ref
//在进入方法CaculateByOut之前,number不必赋值
//在方法CaculateByOut里面,number必须进行赋值
number = 3;
return number * number;
}

ref&out的坏处在于:
查询number值的引用时,只能查询到ref&out这个方法名上面,对于IDE来说,方法修改了一个变量值,而不是修改了number
在开发过程中的查询检索会遇到困难,如下所示:

 
 
 
 

测试方法

public void Test()
{
//ref
int number = 1;
int newNumber=CaculateByRef(ref number); //out
newNumber = CaculateByOut(out number); //元组
var returnValues = CaculateByTuple(number);
number = returnValues.number;
newNumber = returnValues.newNumber; //匿名对象
var returnValues2 = CaculateByDynamic(number);
number = returnValues2.number;
newNumber = returnValues2.newNumber; //元组2
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
numbers.Add(3);
var returnValues3 = CaculateByTuple(numbers);
}

示例

https://github.com/zLulus/NotePractice/blob/dev3/Console/ConsoleDemo/ReturnsMultipleValuesTest.cs

最新文章

  1. NodeJs对Mysql封装
  2. apache启动出错原因举例
  3. java连接hbase报错
  4. yum mysql on centos 7
  5. PostgreSQL增删数据命令示例
  6. 对于volatile的理解
  7. c - 水仙花数.
  8. (原)python中使用plt.show()时显示图像
  9. Windows socket之最简单的socket程序
  10. For in 与For of 区别
  11. Redis进阶实践之十八 使用管道模式加速Redis查询
  12. windows下的vimrc
  13. LeetCode编程训练 - 位运算(Bit Manipulation)
  14. 多节点,多线程下发订单,使用zookeeper分布式锁机制保证订单正确接入oms系统
  15. 用一句sql语句更新两个表并可更新对应的字段的值
  16. 用Flow编写更好的js代码
  17. Java集合类源码解析:AbstractMap
  18. 【ES6】=&gt;含义
  19. 1145. Hashing - Average Search Time
  20. Python os.sep()

热门文章

  1. Android JAVA中的时间大小比较
  2. 【b802】火柴棒等式
  3. synology
  4. [Angular] Adding keyboard events to our control value accessor component
  5. Bootstrap手机网站开发案例
  6. 学习游戏服务器开发必看,C++游戏服务器开发常用工具介绍
  7. STS开发环境搭建与配置
  8. hdfs的基本原理和基本操作总结
  9. PHP/HTML混写的四种方式总结
  10. Linux中export导入环境变量的几种方式