C#匿名对象_C#匿名类型_C#匿名对象使用整理

C#匿名对象_C#匿名类型_C#匿名对象使⽤整理⼀、C# 匿名对象概念
匿名类:没有命名的类,不需要定义,也是继承⾃object。
匿名对象:new 出来的匿名类的对象,没有固定类型的对象。
变量声明,必须指定类型,没有指名类型就是匿名类型。所有的对象继承⾃object类,也可以说是object类型。
语法规则:
new { ID=1,Name=""}
⼆、C# 匿名对象的使⽤场景
1.使⽤object 声明
object student2 = new
{
ID = 2,
Name = "李四",
Age = 20
};
2. 使⽤ var 声明
var student = new
{
ID = 1,
Name = "张三"
};
3.使⽤dynimac 声明
dynamic student3 = new
杨政宁
公明党{
单细胞生物ID = 3,
Name = "王五"
};
student3.Age = 30;
4.匿名对象 和 Linq 搭载
//匿名对象和 Linq
隧洞衬砌
int[] nums = new int[] { 1, 2, 3 };
var studentList = nums.Select(q => new
{
ID = q,
Name = "姓名" + q
});
三、var 类型 和dynamic 类型的区别
var的特点:
1、var 仅能声明⽅法内的局部变量
2、var 声明的变量在被赋值后类型即确定下了,后续程序中不能在赋其他类型的值蓝血人作品
dynamic的特点:
1、dynamic 表⽰动态类型,动态类型的含义就是 程序编写、编译阶段 类型不确定,在Runtime时再通过反射机制确定相关对象的属性或⽅法。因此编写阶段不会进⾏语法检测。
世纪文学
2、dynamic 可⽤来声明 字段、属性、⽅法参数、⽅法返回值
3、dynamic 不⽀持智能提⽰,因为你写代码时 dynamic  是什么没法知晓(反射)
dynamic 声明的变量,可理解为 object 类型变量。所以给dynamic变量赋任何类型值都正确,但在使⽤变量来取得某个属性值或调⽤某⽅法时(此时程序肯定处于Runtime状态),CLR会检查(反射)所调⽤的属性或⽅法是否存在,不存在报运⾏时异常。
var 和 dynamic 看似功能类似,但它们是不同的:
var dynamic
声明字段 × √
局部变量 √ √
⽅法参数类型 × √
⽅法返回值类型 × √
更多:

本文发布于:2024-09-20 21:35:03,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/432695.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   对象   匿名   程序   变量   确定   反射
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议