c# - 类型转换的性能

标签 c# .net performance types

之间是否存在任何可衡量的性能差异

((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/

相关文章:

.net - 是否有任何标准方法来报告桌面应用程序中的错误?

使用 group by 聚合计数 { >100 万用户} 的 Mysql 查询性能变慢

c# - 无法拆分文件并发送然后加入服务器

c# - 将 WAV 文件转换为频谱图

.net - 像信用卡持有功能一样用 Paypal 持有付款

performance - ScrollRect.LateUpdate() 分析器中分配 GC 高达 2.4MB 的尖峰

ios - 优化 iOS 应用中关键代码的性能

c# - 如何在 C#.NET 中提供应用程序路径?

c# - 字符串数组中的 LINQ "zip"

c# - html敏捷得不到结果