谁能简要解释以下两种陈述之间的区别,以及我何时应该使用其中一种?
例如,我有一个 Person 类,想在另一个类中实例化 Person 类
Person person = new Person();
var person = new Person();
谁能简要解释以下两种陈述之间的区别,以及我何时应该使用其中一种?
例如,我有一个 Person 类,想在另一个类中实例化 Person 类
Person person = new Person();
var person = new Person();
两者都编译为相同的 MSIL 代码。唯一的区别是在编写源代码时为您提供了可能的便利——如果您决定p
稍后更改 的类型,您只需Person
在构造函数调用中替换一次,并且可以在使用时保持变量声明不变var
。
也就是说,var
易读性略有下降,因为您无法p
在行首立即看到类型。因此,将您的使用限制var
在它真正节省一些类型的场合,例如复杂的嵌套泛型类型。
请注意,如果您不立即初始化变量(在声明变量的同一语句中),则无法使用var
,因为编译器无法推断变量的类型。
没有区别,它只是一个语法糖:
…隐式类型的局部变量是强类型的,就像你自己声明了类型一样,但是编译器决定了类型…</p>
请参考此文档
第一个是显式声明,而第二个是隐式声明(编译器将决定对象)。否则它们是等价的。
这里没有区别。在编译期间var
被翻译。Person
我通常var
用来使代码的重构更快,我的意思是如果你决定改变 的类型p
,你可以简单地改变右边和 let var
。