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
  • 相关阅读:
    在Linux服务器上添加ip白名单允许ssh登录访问
    crontab + shell脚本实现文件重命名
    mysql数据库提示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
    附加题2:中文编程的发展角度
    附加题1:实体店的未来存在形式
    第八周作业
    第七周作业
    第六周作业
    第五周作业
    第四周作业
  • 原文地址:https://www.cnblogs.com/callbin/p/1666935.html
Copyright © 2011-2022 走看看