繁体   English   中英

C#中的转换操作优先级

[英]Cast operation precedence in C#

在C#中,下面的差异是否显着?

int a, b;
double result;
result = (double)a / b;
result = a / (double)b;
result = (double)a / (double)b;

你用哪一个?

演员将在分裂前发生。

在您的示例中,您执行哪一个操作并不重要,就像一个操作数是double一样,运行时也会将另一个操作数转换/转换为double。

这看起来像微优化 - 不值得担心或处理,除非测量表明它确实是一个瓶颈。

我这样做:

result = (double)a / (double)b;

它可能是完全没必要的,但一般来说我想确保它不会进行整数除法,并且我并不真正关心这个场景的具体规则,因此更容易(如果还有几次击键)要明确。

我做(double)a / b因为我想象一个int是不可分割的东西,如岩石或其他东西。 当铸成双倍时,它就像蛋糕一样可分割。 你可以分为四个部分分开3.0个蛋糕,但你不能分成4.0个部分的三个岩石。 或者其他的东西。 有意义吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM