【问题标题】:VB.NET must implement errorVB.NET 必须实现错误
【发布时间】:2014-04-30 03:16:30
【问题描述】:

我只是将 C# 函数转换为 VB.NET 函数,但不知何故我得到了一些错误。下面是我的 C# 函数。

public abstract class BaseFilterControl: UserControl,IFilterControl
{
    public string PropertyName { get; set; }

    public FilterDescriptorBase AssociatedDescriptor { get; set; }

    public bool IsFirst { get; set; }

    public abstract FilterDescriptorBase BuildDescriptor();

    protected abstract void Initialize();
}

下面是我目前的VB函数

Public MustInherit Class BaseFilterControl
    Inherits UserControl
    Implements IFilterControl

    Public Property PropertyName As String

    Public Property AssociatedDescriptor As FilterDescriptorBase

    Public Property IsFirst As Boolean

    Public MustOverride Function BuildDescriptor() As FilterDescriptorBase

    Protected MustOverride Sub Initialize()
End Class

我收到了这个错误:

BaseFilterControl must implement Function BuildDescriptor() As FilterDescriptorBase.

任何想法。请帮忙。谢谢

【问题讨论】:

  • 听起来你需要一个 BuildDescriptor() 的实现,而不是一个抽象方法。
  • @emodendroket 为什么,如果它是抽象的/MustOverride?​​span>
  • @emodendroket。我该怎么做?
  • @emodendroket:实现接口方法的抽象方法就可以了——它所需要的只是方法上的“Implements”子句。
  • 好吧,幸好我当时发表了评论而不是答案。

标签: c# vb.net c#-to-vb.net


【解决方案1】:

实现接口方法的抽象方法。在VB中,只需要指定函数实现接口函数即可:

Public MustOverride Function BuildDescriptor() As FilterDescriptorBase Implements IFilterControl.BuildDescriptor

您可能需要为其他方法添加更多“Implements”子句 - 我不熟悉 IFilterControl 接口。

【讨论】: