zoukankan      html  css  js  c++  java
  • 泛型定义

    代码
    Public Class Person
       
    Public FirstName As String
       
    Public LastName As String

       
    Public Sub New(ByVal firstName As StringByVal lastName As String)
          
    Me.FirstName = firstName
          
    Me.LastName = lastName
       
    End Sub
    End Class

    Public Class Company
       
    Public Name As String

       
    Public Sub New(ByVal name As String)
          
    Me.Name = name
       
    End Sub
    End Class

    Public Class Relation(Of T1, T2)
       
    Public ReadOnly Object1 As T1
       
    Public ReadOnly Object2 As T2

       
    Public Sub New(ByVal obj1 As T1, ByVal obj2 As T2)
          
    Me.Object1 = obj1
          
    Me.Object2 = obj2
       
    End Sub
    End Class

    ' a new version that uses the As Class constraint

    Public Class Relation2(Of T1 As Class, T2 As Class)
       
    Public ReadOnly Object1 As T1
       
    Public ReadOnly Object2 As T2

       
    Public Sub New(ByVal obj1 As T1, ByVal obj2 As T2)
          
    Me.Object1 = obj1
          
    Me.Object2 = obj2
       
    End Sub

       
    Public Function Contains(ByVal obj As ObjectAs Boolean
          
    Return Me.Object1 Is obj OrElse Me.Object2 Is obj

       
    End Function

    End Class

    ' A new version that shows a minor issue with the VB compiler

    Public Class Relation3(Of T1 As Class, T2 As Class)
       
    Public ReadOnly Object1 As T1
       
    Public ReadOnly Object2 As T2

       
    Public Sub New(ByVal obj1 As T1, ByVal obj2 As T2)
          
    Me.Object1 = obj1
          
    Me.Object2 = obj2
       
    End Sub

       
    Public Function Contains(ByVal obj As T1) As Boolean
          
    Return Me.Object1 Is obj
       
    End Function
       
    Public Function Contains(ByVal obj As T2) As Boolean
          
    Return Me.Object1 Is obj
       
    End Function

    End Class


    Public Class PersonCompanyRelation
       
    Inherits Relation(Of Person, Company)

       
    Public Sub New(ByVal person As Person, ByVal company As Company)
          
    MyBase.New(person, company)
       
    End Sub
    End Class

    Public Class PersonCompanyRelationList
       
    Inherits List(Of PersonCompanyRelation)
    End Class
  • 相关阅读:
    python3 driver chrome This version of ChromeDriver only supports Chrome version 89
    centos7 conda 安装 tensorflow
    python3 selenium Google浏览器 自动登录
    Fiddler Script
    深夜看了张一鸣的微博,让我越想越后怕(转载)
    OpenCV相关库
    .NET 面试题汇总(带答案)
    Java面试题
    定制化知识图谱 项目介绍
    关于《社会主义经济理论》若干问题的思考《九》
  • 原文地址:https://www.cnblogs.com/callbin/p/1666935.html
Copyright © 2011-2022 走看看