ヘッカーバの時間があるのですが、私は何かが分かりにくいと感じています。私はSystem.Web.UI.WebControls.Button
から継承し、私が設定したインターフェースを実装するコントロールを持っています。そう考えて...ASP.NETで特定のインターフェイスを使用するコントロールを見つける
public class Button : System.Web.UI.WebControls.Button, IMyButtonInterface { ... }
ページのコードビハインドで、私はこのボタンのすべてのインスタンスをASPXから探したいと思います。 タイプが実際に何をしようとしているのか分からないので、インターフェイスが実装されています。これはコントロールツリーをループするときに必要なことです。つまり、オブジェクトがインタフェースを使用しているかどうかを判断する必要はありませんでした。 コントロールツリーをループして、IMyButtonInterface
を実装しているものをすべてクリーンな方法でヤンクできますか?(Linqは問題ありません)?再び
、それは明らかに何かを知っているが、ちょうど今重くインターフェースを使用して開始し、私はGoogleが:)
編集それを把握するのに十分な結果焦点を当てるように見えることはできません:、実際のクラスを返しGetType()
をインターフェイスを返さないので、私はそれをテストできません(例えば、 "IMyButtonInterface
"の代わりに "MyNamespace.Button
"を返します)。再帰関数で「as
」または「is
」を使用しようとすると、type
のパラメータは関数内で認識されません。それはむしろ奇妙です。だから
if(ctrl.GetType() == typeToFind) //ok
if(ctrl is typeToFind) //typeToFind isn't recognized! eh?
私はこの1つの上に私の頭を傷つける。
タイプが1つの場合、この特定のケースではIsAssignableFromを使用できます。 –