【问题标题】:In ASP.NET/VB.NET, how do I declare Properties/Events such as IsPostBack/Init on an interface that a user control will implement?在 ASP.NET/VB.NET 中,如何在用户控件将实现的接口上声明属性/事件,例如 IsPostBack/Init?
【发布时间】:2012-05-02 12:59:14
【问题描述】:

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

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

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

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

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

有人有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    不幸的是,这在 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
    

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

    【讨论】:

    猜你喜欢
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多