我有一些抽象类,它们具有UserControls我项目中一些的核心功能。我还有两个独立的实现,它们都派生自 Abstract 类;让我们打电话给他们AbstractImpl1,AbstractImpl2. 此外,我还有在几个地方迭代 Collections的摘要。UserControls
我遇到的问题是InvalidCastExceptions- 我需要遍历实现而不是抽象的 UserControls 来获得某些属性(视觉)。除了做 a 之外,有没有一种干净的方法来处理这个问题try/catch?
例子:
在我的项目中,我有抽象类:AbsUserControl
然后我有两个单独的实现:AbstractImpl1和AbstractImpl2
在我的主要形式中,我拥有ObservableCollection<AbsUserControl> absControlCollection然后遍历我所做的项目foreach(AbstractImpl1 userControl in absControlCollection)以便能够访问视觉方面。问题是它ObservableCollection<AbsUserControl> absControlCollection可能由AbstractImpl1或AbstractImpl2对象组成。
有没有一种干净的方法来处理这个问题?现在,我遍历对象的每个地方absControlCollection都用一个块包围它try/catch,尝试遍历AbstractImpl1对象然后捕获一个InvalidCastException并继续遍历AbstractImpl2对象。
让我知道是否需要更多信息。谢谢!