以这种方式编写代码是否有任何性能或安全方面的好处?

时间:2018-06-19 07:53:06

标签: c# initialization

我目前正在维护一些遗留的网络应用,我经常偶然发现这样的代码:

Model modelObject = null;
modelObject = new Model(/*[whatever]*/);
return modelObject;

我会直观地写下:

return new Model(/*[whatever]*/);

或:

Model modelObject = new Model(/*[whatever]*/);
// [anything implying modelObject]
return modelObject;

但是,我并不坦率地理解为什么会以第一种方式写出来,因此我的问题就出现了:在安全方面,我是否有任何遗漏的东西会转向第一个例子效果

2 个答案:

答案 0 :(得分:3)

在您的示例中,分配null并没有任何区别,只会浪费可打印的字符。

您可能想要分配null的原因是,是否存在分支或可能未设置该值的情况和/或由于异常或类似情况而明确需要检查它。< / p>

e.g

string str = null;

if(somecondition)
   str = "set"

return str;

答案 1 :(得分:0)

为什么代码最终会以这种方式出现,可能有很多原因;如果它从一开始就受版本控制,并且编写它的人都在努力编写好的提交消息,那么你可以从阅读提交日志中学到一些东西。但是,对我而言,这似乎更有可能表明该代码是由仍在学习的人撰写的。

也就是说,即使代码看起来像是一个很好的理由,也没有充分的理由让它在今天这样做。重构! :)