C#深入访问对象性能

you*_*hik 5 c# oop performance

我只是想知道在性能和最佳实践方面推荐以下哪种方法.有任何性能差异吗?

if (objA.objB.objC.objD.objE != null)
{
   objX.var1 = objA.objB.objC.objD.objE.prop1;
   objX.var2 = objA.objB.objC.objD.objE.prop2;
   objX.var3 = objA.objB.objC.objD.objE.prop3 + objA.objB.objC.objD.objE.prop4;

   ......
   ......
}

or

var objonlyE = objA.objB.objC.objD.objE
if (objonlyE != null)
{
   objX.var1 = objonlyE.prop1;
   objX.var2 =  objonlyE.prop2;
   objX.var3 = objonlyE.prop3 + objonlyE.prop4;
   ......
   ......
}
Run Code Online (Sandbox Code Playgroud)

Sim*_*ier 6

第二个更好,因为你永远不知道隐藏在'.'背后的是什么.它可能是数据库调用或其他一些昂贵的操作.


小智 0

第二个更容易使用......所以,更好,因为你不会一次又一次地重复你的代码......