1

我在将一些 .NET2 时代的 C# 移植到 .NET2 时代的 VB.NET 时遇到问题。具体来说,我试图定义一个 ASP.NET 用户控件将实现的接口。

(作为背景,我正在尝试重新实现几年前Phil Haack 的 Model-View-Presenter 示例。)

我正在使用的 C# 接口定义了基本控件已经实现的属性和事件(IsPostBack、Load)。

但是,VB.NET 迫使我在用户控件中显式实现这些属性/事件(Public Property IsPostBack() As Boolean Implements IView.IsPostBack ...)。我只想在界面中定义这些,而不必在实现用户控件的代码隐藏中做任何特殊的事情。

我假设我可以在 VB.NET 中做到这一点,我只是不知道怎么做。我花了各种时间谷歌搜索/搜索,但还没有找到答案。

有人有想法么?

4

1 回答 1

3

不幸的是,这不是您在 VB.NET 中可以做到的。VB.NET 只做显式接口实现,所以你必须做这样的事情:

Public Class MyPage
    Inherits Page
    Implements IView

    Public ReadOnly Property IsPostBack() As Boolean Implements IView.IsPostBack
        Get
            Return MyBase.IsPostBack
        End Get
    End Property
End Class

Public Interface IView
    Public ReadOnly Property IsPostBack() As Boolean
End Interface

因此,您将不得不再次实现所有这些接口成员。

于 2012-05-02T13:06:36.577 回答