これはおそらくロングショットですが、私が取り組んでいるプログラムでは繰り返しを最小限に抑えようとしています。下のClearTextBoxes()メソッドに見られるように、私はコードを非常に繰り返しているので、foreachループの内側に簡潔に配置することをお勧めします。 (もともとforeach (object box in customBoxes)
ループはありませんでした)。私は以下のリストでこれをやろうとしましたが、役に立たなかった。私はこれがちょうどできないかどうか、または私がそれを間違ってやっているのかどうかはわかりません。私はあなたが与えることができる任意のヘルプに感謝し、これを行うことができない場合、どのように私はこのコードブロックを縮小することができますか?変数のリスト<>は使用できますか?
ありがとうございます!
List<object> customBoxes = new List<object>();
customBoxes.AddRange(new[] { "TextBox", "DateBox", "DigitBox", "PhoneBox", "WaterTextBox" });
public void ClearTextBoxes()
{
ChildControls ccChildren = new ChildControls();
foreach (object o in ccChildren.GetChildren(rvraDockPanel, 2))
{
foreach (object box in customBoxes)
{
if (o.GetType() == typeof(TextBox))
{
TextBox txt = (TextBox)o;
txt.Text = "";
}
if (o.GetType() == typeof(DigitBox))
{
DigitBox digit = (DigitBox)o;
digit.Text = "";
}
if (o.GetType() == typeof(PhoneBox))
{
PhoneBox phone = (PhoneBox)o;
phone.Text = "";
}
if (o.GetType() == typeof(DateBox))
{
DateBox date = (DateBox)o;
date.Text = "";
}
if (o.GetType() == typeof(WatermarkTextBox))
{
WatermarkTextBox water = (WatermarkTextBox)o;
water.Text = "";
}
}
}
}
各コントロールから継承し、ClearText()メソッドでインターフェイスを適用します。 – James
2番目のループの役割は何ですか(foreach(カスタムボックス内のオブジェクトボックス) )? – DeveloperX
あなたはこの質問を見ることができます:http://stackoverflow.com/questions/619767/net-reflection-set-object-property – GTG