2011-10-26 64 views
-2

什麼是我要改寫下面的代碼片段,以消除在點的代碼複製和B選項:重構:消除在while循環重複代碼,C#

var value = source.GetNext(); // A 
while (value != -1) 
{ 
    sum += value; 
    value = source.GetNext(); // B 
} 

,使用中間迴路斷線改寫爲不能接受

while (true) 
{ 
    int value = source.GetNext(); 
    if (value == -1) break; 
    sum += value; 
} 

回答

12

易peasy :)

while ((value = source.GetNext()) != -1) 
{ 
    sum += value; 
}