2010-12-07 5 views
1

У меня есть набор кодов в моей функции с большим, если это-то еще петель, но каждый делает diffrent одинКак свести к минимуму, если это к для C#

как

if(ddlname.SelectedIndex = 0) 
{ 
//do this 
} 
else 
{ 
//do this 
} 

if (txtprice.Text ="") 
{ 
//do tis 
} 
else 
{ 
//do this 
} 

всей моей программы выглядит неуклюжим и излишне длинным из-за этого. У меня есть 20 dropdownlists и десять текстовых полей. Есть ли способ сделать это так же просто, как 1 или 2 для циклов?

+1

if-else не являются петлями. И я не вижу признаков для циклов в вашем коде. – darioo 2010-12-07 18:27:18

ответ

2

Я сейчас читаю Clean Code by Robert C. Martin. Согласно его книге, вы должны реорганизовать свой метод на несколько более мелких методов, делая одну вещь. Вы должны, например, извлечь каждый из них в свой собственный метод.

Что касается вашего вопроса, я не думаю, что существует какой-либо способ достижения той же логики, что и для циклов, если вы не сделаете то же самое для каждого вызова.

foreach (ctl in page.ctls) 
{ 
    TextBox tempTextBox = ctl as TextBox; 
    if (tempTextBox != null) 
    { 
    doTheSameForEveryTextBox(tempTextBox) 
    } 

    DropDownList tempDropDownList as DropDownList; // not sure if this is the right Type... 
    if (tempDropDownList != null) 
    { 
    doTheSameForEveryTextBox(tempDropDownList) 
    } 
} 

void doTheSameForEveryTextBox(TextBox tempTextBox) 
{ 
    if (tempTextBox.Text == "") 
    { 
    //TODO: implement your code here 
    } 
} 

void doTheSameForEveryDropDownList(DropDownList tempDropDownList) 
{ 
    if (tempDropDownList.SelectedIndex == 0) 
    { 
    //TODO: implement your code here 
    } 
} 
+0

foreach (ctl in page.ctls) - Могу ли я сделать что-то вроде этого? – 2010-12-07 18:32:17

Смежные вопросы