VB.NET接口(interface)

标签 vb.net

我理解接口(interface)的概念,但是我经常发现很难找到如何使用它们的实际示例。我生成了以下代码:

Public MustInherit Class Deletion2
    Implements DeletionInterface2

    Public MustOverride Function Delete() As String Implements DeletionInterface2.Delete
    Public Function CheckDate() As Boolean Implements DeletionInterface2.CheckDate
        Return True
    End Function
End Class

Public Class System1Delete
    Inherits Deletion2
    Implements DeletionInterface2
    Overrides Function Delete() As String
        Return "System 1 Deleted"
    End Function

End Class

Public Class System2Delete
    Inherits Deletion2
    Implements DeletionInterface2
    Overrides Function Delete() As String
        Return "System 2 Deleted"
    End Function

End Class

Public Interface DeletionInterface2
    Function CheckDate() As Boolean
    Function Delete() As String
End Interface

Public Class Form1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim IDeletion As DeletionInterface2
        IDeletion = New System1Delete
        IDeletion.CheckDate()
        IDeletion.Delete()
        IDeletion = Nothing

        IDeletion = New System2Delete
        IDeletion.CheckDate()
        IDeletion.Delete()
        IDeletion = Nothing
End Sub

在上面的示例中(在页面加载中),我使用了对接口(interface)的引用来创建对象的实例,但我不明白这样做的真正好处。

最佳答案

使用像接口(interface)(或 MustInherit 类)这样的抽象的好处是,您可以以相同的方式对待实现接口(interface)的任何对象。 p>

例如,System.Data 命名空间使用许多此类抽象,这意味着实现不同的数据提供程序更容易,并且由于核心正在使用这些抽象,因此不需要更改为新的添加了实现(有关所有不同提供程序的内容,内置的和第三方的 - SQL Server、Oracle、PostGresSQL、MySQL 等...)。

关于VB.NET接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11378532/

相关文章:

VB.net 将 chr(255) 返回为 chr(63)

.net - Azure Blob 存储 - 使用文件流/内存流显示 PDF

vb.net - 为什么 "using"在一个函数中似乎被拒绝,但在另一个函数中可以?

vb.net - VB.NET 项目中字符串插值出现 "Unexpected token"错误

vb.net - 等待单元引发事件

vb.net - 如何在 VB.NET 中内连接两个已填充的 DataTable

c# - 一个很好的设计引用和 CRM 面向对象设计的建议

.net - CommandBehavior.SingleRow 导致数据库连接保持打开状态?

c# - XML 文档中的多语言示例

c# - token facebook-c#-sdk 的交换代码