var 和 dynamic在实际项目中的应用

时间:2022-06-28 08:09:02

先回顾一下这两个关键词的用法.

var是个语法糖,是在用var声明变量的那一刻就确定了其变量的类型.

因为需要在声明的时候就确定其类型,所以要求在用var声明隐式局部变量的时候必须初始化该变量.

编译器就是通过这种初始化的语法来确定变量的类型的.(同样属于编译时的强类型语法检查)

dynamic 则是一种数据类型,是一种动态的数据的类型,其具体的类型是在运行时,根据其上下文来确

定其具体的数据类型,编译时编译器是会自动忽略该变量的类型检查的.

具体的问题

var db = Database.Open("数据库名字");
dynamic oc_list = db.Query("查询语句");
var oc_coll = db.Query("查询语句");

oc_list 最终的类型为System.Collections.ObjectModel.ReadOnlyCollection

oc_coll的类型是根据Query确定的为 IEnumerable<T>