2012-02-03 54 views
2

前幾天我問了一個question可能有點不清楚。現在我已經編寫了可以更好地說明問題的代碼。請看下面的代碼第一:縮短這個,如果條件

int d; 
d = DateTime.Today.Day; 
if (d==1) 
{ 
    hyperlinkButton1.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==2) 
{ 
    hyperlinkButton2.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==3) 
{ 
    hyperlinkButton3.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==4) 
{ 
    hyperlinkButton4.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==5) 
{ 
    hyperlinkButton5.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==6) 
{ 
    hyperlinkButton6.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==7) 
{ 
    hyperlinkButton7.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==8) 
{ 
    hyperlinkButton8.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==9) 
{ 
    hyperlinkButton9.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==10) 
{ 
    hyperlinkButton10.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==11) 
{ 
    hyperlinkButton11.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==12) 
{ 
    hyperlinkButton12.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==13) 
{ 
    hyperlinkButton13.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==14) 
{ 
    hyperlinkButton14.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==15) 
{ 
    hyperlinkButton15.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==16) 
{ 
    hyperlinkButton16.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==17) 
{ 
    hyperlinkButton17.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==18) 
{ 
    hyperlinkButton18.Background = new SolidColorBrush(Colors.Black); 
} 
else if (d==19) 
{ 
    hyperlinkButton19.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==20) 
{ 
    hyperlinkButton20.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==21) 
{ 
    hyperlinkButton21.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==22) 
{ 
    hyperlinkButton22.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==23) 
{ 
    hyperlinkButton23.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==24) 
{ 
    hyperlinkButton24.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==25) 
{ 
    hyperlinkButton25.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==26) 
{ 
    hyperlinkButton26.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==27) 
{ 
    hyperlinkButton2.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==28) 
{ 
    hyperlinkButton28.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==29) 
{ 
    hyperlinkButton29.Background=new SolidColorBrush(Colors.Black); 
} 
else if (d==30) 
{ 
    hyperlinkButton30.Background=new SolidColorBrush(Colors.Black); 
} 
else 
{ 
    hyperlinkButton31.Background=new SolidColorBrush(Colors.Black); 
} 

我的問題(作爲一個初學者)是這樣的:有沒有在C#中的任何方式通過使應用程序確定它依賴於改變其hyperlinkbutton背景縮短這個條件d的值?

回答

3

的基於陣列的方法是在一般的水平,多一個很好的選擇,如果聲明,但因爲這也標記爲Silverlight的,你可能有興趣參加的FrameworkElement.FindName Method的優勢,如果你可以依靠的約定用一個公共前綴命名HyperlinkBut​​tons。

var hyperlinkButton = this.FindName("hyperlinkButton" + DateTime.Now.Day) as HyperlinkButton; 
if (hyperlinkButton != null) 
{ 
    hyperlinkButton.Background = new SolidColorBrush(Colors.Black); 
} 
+0

感謝您的幫助,這真的讓我的生活更輕鬆;) – DreamNet 2012-02-04 08:32:46

0
switch(d) 
{ 
case 1: doThings(); break; 
case 2: doThings2(); break; 
case 3: 
    doSomeThings(); 
    doMoreThings(); 
    break; 
default: 
    runThingsIfDIsNotListed(); 
    break; 
} 

4

定義相關的控制的陣列,並使用整數鑰匙插入陣列,記住陣列0爲基礎的,而不是基於1的。

var buttons = new [] { 
    hyperlinkButton1, 
    hyperlinkButton2, 
    hyperlinkButton3, 
    hyperlinkButton4, 
    hyperlinkButton5, 
    hyperlinkButton6, 
    hyperlinkButton7, 
    hyperlinkButton8, 
    hyperlinkButton9, 
    // ... 
} 

//.... 

buttons[DateTime.Today.Day-1].Background=new SolidColorBrush(Colors.Black);