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 看似功能类似,但它们是不同的:

 vardynamic
 声明字段 × √
 局部变量 √ √
 方法参数类型 × √
 方法返回值类型 × √

 

更多:

C# 数组_C#动态数组详解整理

DotNet 开发项目类型整理_C#开发项目类型整理

C#面向对象_C#面向对象开发开发整理

天马3798 c#/.net/asp JS/Css Vue
已标记关键词 清除标记
相关推荐
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值