2011-10-26 35 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; 
}