【C#】隐式类型var
2013-01-18 18:46
169 查看
在.NET 3.0后微软引入了隐式类型var,编译器可以自动判断变量的类型,通过var这个隐式类型,可以提高开发人员的开发效率,很多时候可以不考虑对象的类型,编译器会自动帮我们判断
使用隐式类型和使用其他显式类型的效果是一样的,只是在编译的过程IDE自动判断类型,所以很多时候我们不用考虑变量的具体类型
编译完,IDE会自动的把var换成string,int,而第三个,在编译的时候会自动生成一个匿名的类,obj是一个类的对象,可以通过Reflector反编译工具查看到
![](http://images.cnitblog.com/blog/445476/201301/18183311-1bb783cfdaf94f07b2d9c9663765a821.png)
![](http://images.cnitblog.com/blog/445476/201301/18183415-f4fc1b4ca75f47de92c536b245fe1a6c.png)
在使用隐式类型var的时候,需要遵循几个规则
1)var类型的值必须是局部变量或静态变量
2)var变量在声明之前必须被初始化
3)变量的值不能为null(这样编译器就不能判断类型了)
4)var变量不能为一个方法或方法组
5)不能用来声明参数类型
使用隐式类型和使用其他显式类型的效果是一样的,只是在编译的过程IDE自动判断类型,所以很多时候我们不用考虑变量的具体类型
class Program { static void Main(string[] args) { var str = "aaa"; var i = 15; var obj = new { Name = "10", Age = 15 }; str.ToString(); i.ToString(); } }
编译完,IDE会自动的把var换成string,int,而第三个,在编译的时候会自动生成一个匿名的类,obj是一个类的对象,可以通过Reflector反编译工具查看到
![](http://images.cnitblog.com/blog/445476/201301/18183311-1bb783cfdaf94f07b2d9c9663765a821.png)
![](http://images.cnitblog.com/blog/445476/201301/18183415-f4fc1b4ca75f47de92c536b245fe1a6c.png)
在使用隐式类型var的时候,需要遵循几个规则
1)var类型的值必须是局部变量或静态变量
2)var变量在声明之前必须被初始化
3)变量的值不能为null(这样编译器就不能判断类型了)
4)var变量不能为一个方法或方法组
5)不能用来声明参数类型
class Program { int num = 15; static void Main(string[] args) { string str; //不能使用为初始化的变量 //var s = str; //不能引用字段,只能是局部变量或静态变量 //var n = num; //var变量值不能为null //var s = null; //不能用函数返回值赋值 //var s = Add(10, 15); } //不能用作方法参数类型 //public int Add(var a, var b) public int Add(int a, int b) { return a + b; } }
相关文章推荐
- C#中的Var—隐式类型
- C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法
- C#中利用var对局部变量的隐式类型声明
- C# var隐式类型
- C#中的隐式类型var——详细示例解析
- C# var 隐式类型 var 用法 特点
- C# var 隐式类型 var 用法 特点
- [C#] 隐式类型var —— 示例解析
- <C#> var--隐式类型
- C# 3.0新特性系列:隐含类型var
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- C#中隐式和显示类型转换
- C#的类型转换(1)之隐式和显式转换
- 《C# in Depth:深入理解C#》读书笔记 - 隐式类型、对象初始化程序和匿名类型
- 隐式类型的数组(C# 编程指南)
- C# 3.0新特性系列:隐含类型var_C#教程
- C#类型转换:隐式转换和显式转换
- 判断C#中可以进行隐式类型转换的类型
- c#4.5新语法--自动属性和隐式类型
- C# 3.0新特性系列:隐含类型var