变量声明.优化方式

Van*_*dze 0 c#

哪种更优化的方式和原因?

MyType myType1 = new MyType();
// Do some work with myType1 

myType1 = new MyType();
// Do some work with myType1 
Run Code Online (Sandbox Code Playgroud)

要么

MyType myType1 = new MyType();
// Do some work with myType1 

MyType myType2 = new MyType();
// Do some work with myType2
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 12

第二个可能非常非常慢,或者在某些情况下会占用更多内存,因为它会有一个堆栈条目.如果这是重度递归方法的一部分,那么最终会为这两个变量占用更多的堆栈空间.

不要将此作为支持第一种方法的理由.

您应该编写最干净的代码 - 如果您可以编写代码,以便在声明后几乎没有任何变量更改值,这样可以更容易地以函数样式推理您的代码.

从可读性的角度来看,我通常赞成第二种方法.这取决于具体情况.