Does.Net/C#和#x27;s速度随景深的增加而降低?

Does.Net/C#和#x27;s速度随景深的增加而降低?,.net,object,performance,hierarchy,depth,.net,Object,Performance,Hierarchy,Depth,以下两行代码之间的执行速度有差异吗?我无法通过查看IL来判断: int x = MainObject.Field1; int x = MainObject.Public.Fields.Field1; 我从Delphi(本机代码)中知道,没有任何区别。没有任何区别。(假设您的意思是,正如您在标题中所说,字段)根据“.”对更深层的类结构元素进行调用-否,但使用它进行方法调用-是。这个问题在方法调用的上下文中没有意义。调用:int x=MainObject.Field1.ToString().Tri

以下两行代码之间的执行速度有差异吗?我无法通过查看IL来判断:

int x = MainObject.Field1;
int x = MainObject.Public.Fields.Field1;

我从Delphi(本机代码)中知道,没有任何区别。

没有任何区别。(假设您的意思是,正如您在标题中所说,字段)

根据“.”对更深层的类结构元素进行调用-否,但使用它进行方法调用-是。

这个问题在方法调用的上下文中没有意义。调用:int x=MainObject.Field1.ToString().Trim().Length;你怎么能看不出来呢?两者都生成一个几乎完全相同的IL语句。如果这些都是非平凡属性,那么它们内部可能有任意复杂的代码,因此无法确定。如果它们都是引用类型字段(稍微简化),则必须取消引用每个“嵌套”(非空)引用:它引用的对象将位于堆的不同部分。这将产生较小的性能成本;特别是,它不会对缓存友好。在大多数现实世界的应用程序中,这不太可能造成任何显著的差异。@Ani-你的评论比标记的答案准确得多。你应该把它寄出去。