簡體   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