2

これを行うと実行時エラーが発生します。

私はこのクラスを持っています:

public abstract class AnnObject : DependencyObject

これを行うと、正常にコンパイルされますが、実行時エラーがスローされます...

AnnObject aa;
var b = (DependencyObject)aa;
var c = (UIElement)b;

私が得るエラーは、AnnObject を にキャストできないというものUIElementです。

誰かがこの動作を簡単に説明できますか?

4

2 に答える 2

4

UI コンポーネントの Silverlight のクラス階層は次のとおりです。

DependencyObject
  UIElement
    FrameworkElement
      Control

したがって、Heinz が指摘しているように、 and にキャストできるようにするには、 from order から派生する必要がありUIElementます。個人的には、それほど有用であることから派生しているとは思えません。私は通常、またはそれ以上から始めます。UIElementDependencyObjectDependencyObjectFrameworkElementControl

于 2010-07-16T19:38:22.603 に答える
2

DependencyObjectからではなく、 からのみ派生しUIElementます。

于 2010-07-16T16:53:12.290 に答える