在ASP.NET / VB.NET中,如何在用户控件将实现的接口上声明属性/事件(如IsPostBack / Init)?

时间:2012-05-02 12:59:14

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

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

(对于背景,我试图从几年前开始重新实施Phil Haack's Model-View-Presenter example。)

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

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

我假设我可以在VB.NET中这样做,我只是不知道如何。我花了各种各样的时间在谷歌上搜索,并没有得到答案。

有人有什么想法吗?

1 个答案:

答案 0 :(得分: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

所以你必须再次实现所有这些接口成员。