匿名类型
匿名类型简介
匿名类型提供了一种方便的方法,可用来将一组相关的属性封装到单个对象中。匿名对象由编译器在编译时动态生成,它是只读不写的存在,且在当前作用域中可见,它可以方便地在代码中传递与使用(直接理解:不用写Class直接new对象,组合数据,传递数据)。
作用
避免编写不必要的类,提高编码效率,逻辑更清晰。
缺点
超出当前作用域,需使用dynamic或反射等方式来获取数据项
应用
匿名对象通常用在LINQ的select子句及多返回值场景
使用案例
1.创建使用匿名类型对象
2.动态类型处理匿名类型对象(缺点:属性名写错了,也不会报错,运行时出错)
3. 指定类型接收匿名类型对象
4.通过反射获取匿名类型数据项(测试匿名类型作参数)
5.Linq(语句集成查询)支持对匿名对象集合的查询处理
元组
元组简介
元组是一种泛型结构体,系统已经定义好了。
元组使用技巧
1. 一行代码交换两个变量的值
2. 使用更简洁赋值语法
3. 使用命名字段
4. 元组作为参数
5. 元组作为返回类型
6. 使用元组作为返回值,调用方法并解构返回值
7. 元组可以修改
8. 元组类型支持相等运算符 == 和 !=,它比较的是各个元素
9. 元组中可以使用任意数量的元素
元组解构
元组创建就是将多个零散变量组成一个元组,元组就是将一个元组分解成对你哥零散变量。
弃元
即放弃不需要的元素
![](https://img-blog.csdnimg.cn/12499be156ad4ee0956c85c539f5a092.png)
相同
1. 不写class,new对象。
2.在Linq中使用方便。
区别
1. 编写格式
匿名类型: new{格式简洁}
元组- Value Tuple : (更简洁)
2. 赋值
匿名类型:属性名 = 属性值
元组- Value Tuple:字段名:字段值
3.读取
匿名类型:只读
元组- Value Tuple:字段值可修改