推断类型var

时间:2023-03-08 20:04:59

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

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

2、如何使用推断类型var

客户端代码

        static void Main(string[] args)
{
var a = ;
var className = "var的学习";
//var student = new Student{StudentName = "王华", Age = 27};//创建对象
var student = new { StudentName = "王华", Age = };//匿名类
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

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

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

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

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

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

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

4、var和object的区别

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

        static void Main(string[] args)
{
object a = ;
a = "应该对了"; var b = ;
b = "错了吗?";
}

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