推断类型var

1、为什么使用推断类型var

var可以根据变量的初始值自动推断局部变量类型,当无法确定所用变量的具体类型时可使用var

2、如何使用推断类型var

客户端代码

        static void Main(string[] args)
        {
            var a = 10;
            var className = "var的学习";
            //var student = new Student{StudentName = "王华", Age = 27};//创建对象
            var student = new { StudentName = "王华", Age = 27 };//匿名类
            Console.WriteLine("{0}个人在进行{1}, 其中{2}, {3}岁,掌握的最好!", a, className, student.StudentName, student.Age);
            Console.ReadLine();
        }

 

 

Sudent类定义

    public class Student
    {
        public string StudentName { get; set;}
        public int Age { get; set;}
        public int StudentId { get; set;}
    }

输出

由此可见var可以根据变量的值来推断变量的类型

注:匿名类:匿名类不需要提前编写类及其成员,并且只能添加属性不能添加方法,匿名类并不是无名,而是编译器在后台生成类名

 

3、推断类型var使用时注意的问题

(1) 使用var的变量必须为局部变量,成员变量无法用var修饰

(2) 使用var时该变量必须同时初始化,并且不能为空

(3) var本身不是定义一个新类型

 

4、var和object的区别

var和object很类似,但是有一些区别,var在推断变量的类型后不能再对该变量进行其他类型的赋值,object没有这点限制

        static void Main(string[] args)
        {
            object a = 10;
            a = "应该对了";

            var b = 10;
            b = "错了吗?";
        }

前者a编译没问题,后者b有问题,由此可以看出var和object的区别

posted @ 2016-02-03 10:34  白沙靓  阅读(630)  评论(0编辑  收藏  举报