三元运算符重叠

时间:2010-11-22 13:59:13

标签: c# wpf performance ternary-operator

我想知道:这两个版本之间在性能方面最好的指令是什么:

Background = Application.Current.Resources[condition ? BackgroundName1 : BackgroundName2] as Brush;

Background = condition ? Application.Current.Resources[BackgroundName1] as Brush : Application.Current.Resources[BackgroundName2] as Brush;

有什么区别吗?如果是,哪一个更好?

感谢

NB:BackgroundName1& 2只是字符串

4 个答案:

答案 0 :(得分:5)

第一个更短,更易读。

维护起来也更容易 如果您稍后将其更改为阅读其他资源字典,则可能忘记更改第二个字典的后半部分。

第一个也更清楚地从同一个字典中读取。

答案 1 :(得分:3)

首先:使用分析器找到最慢的东西。如果您遇到性能问题,花费数小时或数天来制作速度已经足够快的东西是没有意义的。

第二:您可以通过两种方式尝试并仔细测量以确定是否存在差异来确定问题的答案。不要问我们哪个更快;我们不知道,因为我们没有尝试过,也没有能力尝试它。

答案 2 :(得分:2)

不要过于陷入微观优化!你获得的性能提升将为零。寻找最终可读性和易于理解的代码。

答案 3 :(得分:0)

没有任何区别。