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
  • 相关阅读:
    java final修饰符
    java getClass()
    java color类简介
    JAVA本地方法详解,什么是JAVA本地方法?
    this 关键字
    main 静态方法 非静态方法
    Integer与int
    java创建一个对象时,内存中发生了什么
    java中静态变量在内存中的位置
    java使用new Date()和System.currentTimeMillis()获取当前时间戳
  • 原文地址:https://www.cnblogs.com/callbin/p/1666935.html
Copyright © 2011-2022 走看看