在C#中声明变量
可能重复:
在C#中使用var关键字
嗨,我在C#中很新,
我想知道声明变量的最佳做法。
我知道在声明变量(隐式)时可以使用VAR(显式声明)或DataType。
我会感谢您的意见
我总是试着给我的变量声明提供一些有用的名字,它们描述了它们是什么,骆驼式的,在班级的顶部声明。
大多数人会说使用var是最好的。 它降低了未来维护的复杂性,例如,如果更改特定方法的返回类型,则不必去改变从该方法分配给每个变量的类型,因为您已经使用var声明变量。
这种类型的问题已经在stackoverflow上多次讨论过了。 例如,请参阅:在C#中使用var关键字
这是相反的方式。 这是一个明确的类型:
int x = 42;
这是一个隐式类型:
var x = 42;
您必须在必须使用隐式声明时(即使用匿名类型时)或代码更易读。
例:
// anonymous type
var y = new { item: "asdf" };
// avoid repeating long type names
var z = new System.Text.StringBuilder();
就个人而言,我很高兴使用var myVariable = new ReferenceType();
因为我知道我要获得一个类型的变量,并且必须再次指定类型是重复。 有时你需要具体时声明即: IComplexThing var = new ComplexThing();
为了交换数组和集合,然后foreach(项目中的var项)是OK,因为我再次知道我将获得什么类型。
我通常尝试使用MyType result = from x in queryable where x=>x.Id == id select x;
因为该类型在查询之前是已知的,但是对于像var result = from x in queryable where x=>x.Id == id select new { Id, Name, Description};
该类型在查询时生成并且不知道。 我试图远离那种类型的查询。