【发布时间】:2010-12-13 17:54:45
【问题描述】:
在 C# 中,我可以创建一个接口,当我使用该接口时,编译器知道基类满足某些接口要求。举个例子可能会更清楚:
interface FormInterface
{
void Hide();
void Show();
void SetupForm();
}
public partial class Form1 : Form, FormInterface
{
public Form1()
{
InitializeComponent();
}
public void SetupForm()
{
}
}
编译器知道 Hide() 和 Show() 是在 Form 中实现的,上面的代码编译得很好。我不知道如何在 VB.NET 中做到这一点。当我尝试时:
Public Interface FormInterface
Sub Hide()
Sub Show()
Sub SetupForm()
End Interface
Public Class Form1
Inherits System.Windows.Forms.Form
Implements FormInterface
Public Sub SetupForm() Implements FormInterface.SetupForm
End Sub
End Class
但是编译器抱怨 Form1 必须为接口“FormInterface”实现“Sub Hide()”。我真的必须添加以下内容吗?
Public Sub Hide1() Implements FormInterface.Hide
Hide()
End Sub
在我所有的表单上,还是创建一个具有 SetupForm() 的抽象基类的更好途径(以及在 VB.NET 中如何做到这一点)?
【问题讨论】:
-
@Kris Erickson:我不明白这个“隐式实现”的东西......无论如何,我想接口必须完全按照对基类的反对来实现。接口将其实现强制到派生类中。如果您只想添加这些方法,我可能会考虑一个基本抽象类(VBNET 中的 MustInherit)。这是否足以满足您的需求?