C#中变量类型和对象类型之间的差异

本文关键字:类型 之间 变量 对象 | 更新日期: 2023-09-27 18:25:42

有人能简要解释一下下面两个语句之间的区别吗?以及我什么时候应该使用其中一个而不是另一个?

例如,我有一个Person类,并且希望在另一个类中实例化Person类

Person person = new Person();
var person = new Person();

C#中变量类型和对象类型之间的差异

两者都编译为相同的MSIL代码。唯一的区别是在编写源代码时可能会给您带来方便——如果您决定稍后更改p的类型,则只需在构造函数调用中替换Person一次,并且在使用var时可以保持变量声明不变。

也就是说,var的易读性略有下降,因为你在行首再也看不到p的类型了。因此,将var的使用限制在它确实节省了一些类型的情况下,例如对于复杂的嵌套泛型类型。

请注意,如果您不立即初始化变量(在声明变量的同一语句中),则不能使用var,因为编译器无法推断变量的类型。

没有区别,它只是语法糖

…隐式类型的局部变量是强类型的,就像你自己声明了类型一样,但编译器确定了类型…

http://msdn.microsoft.com/library/bb383973.aspx

请参考此文档

第一个是显式声明,而第二个是隐式声明(编译器将决定对象)。否则,它们是等效的。

这里没有区别。CCD_ 8在编译期间被翻译成CCD_。我通常使用var来加快代码的重构,我的意思是,如果你决定更改p的类型,你可以简单地更改右侧,让var