C# 元组、匿名对象、ref&out
2024-08-29 05:03:17
元组
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
最新文章
- NodeJs对Mysql封装
- apache启动出错原因举例
- java连接hbase报错
- yum mysql on centos 7
- PostgreSQL增删数据命令示例
- 对于volatile的理解
- c - 水仙花数.
- (原)python中使用plt.show()时显示图像
- Windows socket之最简单的socket程序
- For in 与For of 区别
- Redis进阶实践之十八 使用管道模式加速Redis查询
- windows下的vimrc
- LeetCode编程训练 - 位运算(Bit Manipulation)
- 多节点,多线程下发订单,使用zookeeper分布式锁机制保证订单正确接入oms系统
- 用一句sql语句更新两个表并可更新对应的字段的值
- 用Flow编写更好的js代码
- Java集合类源码解析:AbstractMap
- 【ES6】=>;含义
- 1145. Hashing - Average Search Time
- Python os.sep()