之间是否存在任何可衡量的性能差异
((TypeA) obj).method1();
((TypeA) obj).method2();
((TypeA) obj).method3();
和
var A = (TypeA) obj;
A.method1();
A.method2();
A.method3();
什么时候使用了很多次?
我经常看到类似的东西
if (((TextBox)sender).Text.Contains('.') || ((TextBox)sender).Text.Contains(','))
想知道这是否是对性能的浪费。
最佳答案
如果只用很少的其他工作就可以完成数十亿次,那么它可能是可衡量的。我不知道 CLR 是否会有效地缓存转换有效的事实,因此它不需要再次执行 - 如果现在不这样做,它可能会在以后的版本中这样做。它可能会在 64 位 JIT 中执行此操作,但不会在 32 位版本中执行此操作,反之亦然 - 您明白了。不过,我怀疑它是否会对普通代码产生重大影响。
不过,就我个人而言,我更喜欢第二种形式的可读性,而且到目前为止这一点更为重要。
关于c# - 类型转换的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42023210/