gpt4 book ai didi

c# - 从 winforms 基类显式调用接口(interface)方法

转载 作者:行者123 更新时间:2023-11-30 15:40:28 25 4
gpt4 key购买 nike

我有一个 winforms 基本表单,其中包含对需要在派生表单中实现的某些方法的调用。我想确保我的派生形式确实在尽可能多的编译时支持下实现了这些方法。如果您想使用设计器,我们都知道无法将 winforms 类定义为抽象类的问题(参见 this question)。

我创建了一个接口(interface),其中包含需要以派生形式实现的方法签名。然后我直接从基类调用接口(interface)方法,如下所示:

((IMyFormInterface)this).SomeInterfaceMethod();

(请注意,我的基类没有继承IMyFormInterface。如果继承了,那么派生类就不会被迫实现它。)

然后我以派生形式从接口(interface)继承(编译器强制我实现):

public partial class TestForm : BaseForm, IMyFormInterface

我(或其他用户)唯一需要记住的是继承IMyFormInterface

这样直接调用接口(interface)方法可以吗?我所有这一切的目标是能够尽可能接近确保派生表单在编译时而不是运行时实现这些“抽象”表单方法。

最佳答案

这是解决设计器限制的一种方法。另一种是使用设计器构建一个UserControl,然后让您的表单基类抽象并实例化停靠到完整客户区的控件。

如果您使用这种方法,我会在您的构造函数中断言 (this is IMyFormInterface) 以尽早捕获该错误。

关于c# - 从 winforms 基类显式调用接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9185564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com