推断类型var
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推断类型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的区别
以上是关于推断类型var的主要内容,如果未能解决你的问题,请参考以下文章
在 Java / Eclipse 中推断变量类型,如 C# 的“var”