[英]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.