私は他の誰かによって作成された VB Windows プログラムを持っています。それは、クラス ライブラリを使用して誰でもプログラムの機能に追加できるようにプログラムされており、プログラムはそれらを呼び出します (つまり、クラス ライブラリ、DLL ファイル) プラグイン、私が作成しているプラグインは C# クラス ライブラリです。つまり..dll
Im が取り組んでいるこの特定のプラグインは、シンプルな DateTime クロック関数をラベルの形で追加し、それを深さ 3 のパネルに挿入します。私が持っているコードをテストしましたが、動作します。私の質問はこれです:それを行うためのより良い方法はありますか? たとえば、Controls.Find を 3 回使用します。そのたびに、探している Panel がわかり、Control[] 配列に追加される Panel が 1 つだけになります。繰り返しますが、1 つの要素を 3 回だけ保持する配列に対して foreach を実行しています。
先ほど言ったように、コードは機能し、期待どおりに機能します。冗長すぎるように思えますが、パフォーマンスの問題があるのではないかと考えています。
コードは次のとおりです。
foreach (Control p0 in mDesigner.Controls)
if (p0.Name == "Panel1")
{
Control panel1 = (Control)p0;
Control[] controls = panel1.Controls.Find("Panel2", true);
foreach (Control p1 in controls)
if (p1.Name == "Panel2")
{
Control panel2 = (Control)p1;
Control[] controls1 = panel2.Controls.Find("Panel3", true);
foreach(Control p2 in controls1)
if (p2.Name == "Panel3")
{
Control panel3 = (Control)p2;
panel3.Controls.Add(clock);
}
}
}