如何正确初始化var
类型的类?我经常看到这个版本:
var converter = new Converter();
类的实例应该用PascalCase编写,对吧?为什么var
会有所不同?
答案 0 :(得分:5)
我认为你误解了var
的含义并混淆了什么是类,引用和var(以及每个的命名约定)。
那么var
是什么? From docs:
在方法范围声明的变量可以具有隐式“type”var。隐式类型的局部变量是强类型的,就像您自己声明了类型一样,但编译器确定了类型
来自Implicitly Typed Local Variables:
var关键字指示编译器从初始化语句右侧的表达式推断变量的类型
所以在这种情况下var converter = new Converter();
:
var
确定为Converter
。converter
- 的引用,该引用应使用camelCaseing命名。 Converter
- ,应使用PascalCasing命名。 撰写var converter = new Converter();
与撰写Converter converter = new Converter();
在C#中,var适用于您不知道显式类型的情况,例如匿名类型或者是一种简单的写入方式:
Dictionary<SomeTpye, List<SomeOtherType<AndSomeGenericParameter>> variable =
new Dictionary<SomeTpye, List<SomeOtherType<AndSomeGenericParameter>>();
这样:
var variable = new Dictionary<SomeTpye, List<SomeOtherType<AndSomeGenericParameter>>();
因为它是类型的“别名”而不是类型本身,它保持语言关键字(而不是类型)的约定,并以小写字母书写。