いくつかの共通のプロパティを共有する 2 つの異なる UserControls があります。私がやりたいことは、外部フラグに基づいてこれら 2 つを切り替えることです。
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」というプロパティがないため、コードはエラーをスローしません。
私が現在行っていることは、リフレクションを使用して「SelectedItemName」を取得する UserControl に拡張メソッドを追加し、u1.SelectedItemName の代わりに u1.SelectedItemName() を呼び出して値を取得することです。
私の質問は、拡張機能を使用せずにこれを修正する簡単な方法は何か、おそらく正しい方法です。if ステートメント内で SomeMethod(a,b) を繰り返したくないことに注意してください。