知行合一

博客园 首页 新随笔 联系 订阅 管理
  371 随笔 :: 25 文章 :: 4 评论 :: 15万 阅读
复制代码
代码
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
复制代码

 

posted on   callbin  阅读(234)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示