C#中的转换操作优先级

Jak*_*ake 8 c# casting operator-precedence operator-keyword

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

int a, b;
double result;
result = (double)a / b;
result = a / (double)b;
result = (double)a / (double)b;
Run Code Online (Sandbox Code Playgroud)

你用哪一个?

Ode*_*ded 11

演员将在分裂前发生.

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

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

  • 我主要关心的是计算结束时的精度。我担心无论我选择选哪一个(首先,明确地)都会产生影响。但既然你说内部人员会铸造他们所有人,我就相信你。 (2认同)
  • 实际上,小应用程序不会证明什么.测试操作数的一小部分不能代表所有可能操作数的结果,除非首先确定它是如此实现的.因此我不得不问这个问题. (2认同)