命名约定" var"在C#中

时间:2018-01-12 10:26:21

标签: c# naming-conventions

如何正确初始化var类型的类?我经常看到这个版本:

var converter = new Converter();

类的实例应该用PascalCase编写,对吧?为什么var会有所不同?

1 个答案:

答案 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>>();

因为它是类型的“别名”而不是类型本身,它保持语言关键字(而不是类型)的约定,并以小写字母书写。