变量铸造性能

时间:2012-02-14 13:24:01

标签: c# .net performance casting

哪个代码执行速度更快,为什么

((Form)controls.Owner).Text = langfile.ReadString(
       FormName, ((Form)controls.Owner).Name, ((Form)controls.Owner).Text);

Form form = (Form)controls.Owner;
form.Text = langfile.ReadString(FormName, form.Name, form.Text);

3 个答案:

答案 0 :(得分:6)

第二种形式可能非常轻微更快(只有一次执行时检查而不是三次),但这几乎肯定是微不足道的。

但是,第二个的可读性比第一个更好 - 因此请使用第二种形式,因此。您的开发顺序应该是:

  • 编写最简洁,最易维护的代码
  • 测量代码以确定其是否表现良好
  • 如果没有,请对其进行分析以找出花费的时间
  • 如果分析没有暗示设计发生变化(通常会发生变化),那么只有才能将代码微观优化为不太可读的形式

答案 1 :(得分:2)

你绝对应该使用第二个版本:

  • 更具可读性
  • 没有多余的铸造。

第一个版本没有任何优势

答案 2 :(得分:0)

虽然我不是编译器专家,但很明显这两个表达式将被转换为几乎相同的IL代码,因此性能提升(如果有的话)将是无关紧要的。