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的区别
时间: 2024-12-22 23:01:14