什么时候应该使用var,什么时候应该使用string,ulong,int等

时间:2018-11-10 03:43:28

标签: c# .net

什么是“正确”的使用方式

var x = "text";

string x = "text";

我使用哪个有关系吗?人们通常会采用“标准”方式吗?我之所以这么问,是因为有时Rider建议我使用var

3 个答案:

答案 0 :(得分:3)

在某些情况下,您必须使用显式类型,在某些情况下,您必须使用var

必须使用显式类型:

如果您声明了一个变量而没有对其进行初始化,或者如果您想将变量显式初始化为null

 string myString;
 int i;
 string someString=null;
 DateTime? nullableDate=null;

必须使用var

当您使用匿名类型或带有一个或多个类型参数的通用类型是匿名类型时。

var stuff = new {Name="Bob", Age=25};
var bunchOfStuff = from item in items select new {item.Name, item.Age};

否则

这是样式和/或品味的问题

答案 1 :(得分:1)

var主要是语法糖,但是有时您必须使用var ,这就是将变量分配给匿名用户的时候类型

匿名类型示例:

var anonymousType = new { Name = "Mathew", DOB = DateTime.Now };
Console.WriteLine($"{anonymousType.Name} : {anonymousType.DOB}");

至于何时使用它...这是意见和团队指南。无论哪种方式,都不会有得失。 那就是这是我的看法。这个问题将因过于广泛而被搁置,但与此同时,无论您选择哪种方式,这里都有一些要看的东西。

我喜欢var,但是如果您不小心命名/使用变量,但是...我个人更喜欢var,我认为这可能会造成混淆。它更短,可以清理代码或使其更短。尤其是当您遇到Person person = new Person();之类的东西时,对于我而言,这里有太多人了……我也喜欢var在某种程度上模仿JavaScript语法的方式(尽管两个声明是不同的)。

var与正确声明类型没有什么不同,因此在您的问题string xvar x中都没关系。编译器推断出正在分配的类型,这就是var的类型。

我确实建议这样做...当您声明任何变量时,尤其是使用var的变量时,我将始终将声明命名为尽可能接近类型的名称,因此无论选择哪个变量都无关紧要。正确命名变量,无论哪种方式都不会给您带来麻烦。这是所有意见。

var person1 = new Person();
Person person2 = new Person();

var employee1 = new Employee();
Employee employee2 = new Employee();

var employee3 = new Employee();
Person person3 = new Employee();    

person1.Name = "Mathew";
person2.Name = "Mark";

employee1.Name = "Luke";
employee2.Name = "John";
employee3.Name = "Acts";

person3.Name = "Romans";

答案 2 :(得分:1)

documentation for var说:

  

隐式类型化的局部变量被强类型化,就像您自己声明了类型一样,但是编译器会确定类型。

最后,在功能上没有区别。因此,要回答您的问题,不,您使用哪一个都没有关系。正是出于这个原因,没有“标准”或“适当”的使用。

使用您喜欢的内容。