有兩個不同的用戶控件共享一些共同的屬性。 我想要做的是根據外部標誌在這兩者之間切換。用戶控制開關
UserControl u1, u2;
if(flag)
{
u1 = u1 as ControlType1;
u2 = u2 as ControlType1;
}
else
{
u1 = u1 as ControlType2;
u2 = u2 as ControlType2;
}
SomeMethod(u1.SelectedItemName, u2.SelectedItemName);
由於UserControl沒有名爲「SelectedItemName」的屬性,所以代碼不會拋出錯誤。
我目前所做的是,我在UserControl上添加了一個擴展方法,它使用反射獲取「SelectedItemName」,並通過調用u1.SelectedItemName()而不是u1.SelectedItemName來獲取值;
我的問題是什麼是一個簡單的方法來解決這個問題,而不使用擴展/也許正確的方式。請注意,我不想在if語句中重複SomeMethod(a,b)。
如果'u1'被定義爲類型'UserControl',那麼什麼是說'U1 = U1作爲ControlType'點? – mellamokb