小编Wak*_*Wak的帖子

如何在不调用基本代码的情况下扩展用户控件

语言:C#主题:扩展控件.

我有一个用户控件B,它有一个字段F,它是一个显示图像的控件.

我有第二个用户控件X,它扩展了B.它使用了基础F,但它有自己的实现(显示特定于X的按钮等).

X和B都在不同的项目中找到,B不是抽象的; 这是一个具体的实施.

问题:当创建X时,调用第一个B的构造函数,其中它初始化F.在调用B的构造函数之后,执行它自己的构造函数,其中它将F设置为其他东西.

这是不可取的:
1)F的两个实例存在而X应该使用新的F,它似乎在显示图像时引用基数F.

解决方法:
1)在X中,在替换FI之前可以处理base.F - 或
2)在B中,我可以测试类类型:如果type是X则跳过F的初始化.

虽然我可以使用这些变通办法中的任何一种,但有些东西告诉我存在更好的架构.但是什么?

.net c#

1
推荐指数
1
解决办法
170
查看次数

标签 统计

.net ×1

c# ×1