var即variable的缩写,表示推断类型,例如:
var a=0;
var b=“hello”;
这样写都没有问题,
同样dynamic 也可以用作推断类型,两者不同之处在于:
1、var在编译时由编译器进行推断,而dynamic在运行是由系统进行推断
2、var型的变量只要赋值类型就唯一确定,比如var a=9;在这句语句之后,a就是int类型变量,简言之,只在第一次赋值时做一次推断,而dynamic 类变量在每一次赋值时都可以进行推断
3、var类变量不可以用作函数参数与类的属性,而dynamic可以
4、var性能优于dynamic
除此之外,var和dynamic可以用于匿名类型,比如如下代码:
var temp = new { name = “haha”, count = 4 };
此时temp的类型就不再传统的数据类型之中,但temp是可以通过.操作符得出name和count属性,此时如果获取temp的类型:
Console.WriteLine(temp.GetType().name);
会得到:
<>f__AnonymousType0`2
其中<>f__AnonymousType为约定前缀,0表示程序中的第一个匿名类型, ~表示泛型,2表示需要两个类型来构成该匿名类型
c# var关键字和dynamic关键字
最新推荐文章于 2024-03-20 14:56:20 发布