Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 编译的关键字var性能_C#_Visual Studio_Compilation_Resharper_Var - Fatal编程技术网

C# 编译的关键字var性能

C# 编译的关键字var性能,c#,visual-studio,compilation,resharper,var,C#,Visual Studio,Compilation,Resharper,Var,重构一个大项目(就代码行而言),我了解了ReSharper和使用var而不是只会影响编译时间的类型的主题。 它对编译时间有很大影响吗?我想在我的公司里为它定义一种代码风格,但我不确定我自己是否喜欢“过度使用”关键字var的想法。这不会产生任何影响,因为var的类型在编译时得到解决,因为C是静态语言 在编译时,编译器将替换代码中变量所在的实际类型。因此对编译器编译代码的影响很小 例如: var s = "hi"; 被替换为 string s = "hi"; 根据我的经验,任何差异都是微不足道

重构一个大项目(就代码行而言),我了解了ReSharper和使用var而不是只会影响编译时间的类型的主题。
它对编译时间有很大影响吗?我想在我的公司里为它定义一种代码风格,但我不确定我自己是否喜欢“过度使用”关键字var的想法。

这不会产生任何影响,因为var的类型在编译时得到解决,因为C是静态语言


在编译时,编译器将替换代码中变量所在的实际类型。因此对编译器编译代码的影响很小

例如:

var s = "hi";
被替换为

string s = "hi";

根据我的经验,任何差异都是微不足道的,甚至是不可观察的。我找不到任何区别,即使是在更大的项目上。var产生的任何差异在统计上都是无关紧要的,并且在其余的编译工作中消失了。

我从来没有听说过
var
对编译时间有影响。从技术上讲,由于它不比任何其他常见和不常见的类型长(
var
是3个字符,
int
是3个字符,但例如
string
是5个字符,因此比
var
长66%,当然
Dictionary
更长),它应该使源代码更小,所以编译器的加载速度更快。我想这是你的选择,使用或不使用var。我们在公司里讨论过这个问题,但没有达成一致意见。我不认为它会对编译时间产生明显的影响,但我确实对过度使用
var
关键字有一些强烈的意见……这是我唯一能想到的“var”的位置一个问题是在印刷出版物中,读者不能将鼠标悬停在变量上以找出它是什么。“var”可以节省大量的时间和空间。当我改变对代码深处某个类型的看法时,我不必“修复”它上面的所有内容,因为它会自行修复。如果你想学究式地对待它,并亲自批准所有的影响,那么我可以看到不允许var,这样每个涟漪效应都会迫使一个人关注它,但是适当的测试覆盖率会让你知道是否有任何有害影响。@DavidArno:编译器知道,但开发人员通常不知道。即使今天一切正常,也可能是你或其他人需要维护它。这样就更容易提前看到类型。话虽如此,
var
在明显类型上是减少代码和防止水平滚动的一种很好的方法。我仍然不认为这有什么意义,但当编译器必须遍历调用层次结构以确定返回类型时,差异会更加明显。想想嵌套的泛型方法……当然它还必须找出返回类型,这样它才能检查RHS上的表达式是否是相同的类型,或者是否可以转换为LHS上声明的类型?