大佬教程收集整理的这篇文章主要介绍了vb.net – 在子类中“覆盖”共享成员的方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了一个主类Model,它带有一个共享函数来获取数据集,例如Model.find().
现在我想创建继承主要Model-Class的类,例如用户单独的一个:UserModel.find()=> “SELECT * FROM users”.
我现在需要的是找到一种方法来告诉Class它应该使用哪个表.我想到了一个抽象的字符串“表”,它是每个“子模型”中的常量,但是如何实现它,因为它不可能覆盖共享成员?
提前致谢!
编辑:也许这会让我的意思更清楚一点:
Public Class Model Public Shared _controller As Controller Public Shared table As String Protected Shared tableFields As String() Shared reader As Npgsql.NpgsqlDataReader Public Shared Function find() Dim a As ArrayList = New ArrayList 'Test if the tablefields are already known to the class,if not,get them If tableFields Is Nothing Then getTableFields() End If Dim query As String = "SELECT " + String.Join(",",tableFields) + " FROM " + table reader = _controller.executeReader(query) While reader.Read o = New Model Dim v As New Hashtable For Each field In tableFields v(field) = reader(field) Next o.values = v a.Add(o) End While reader.Close() Return DirectCast(a.ToArray(GetType(Model)),Model()) End Function Public values As Hashtable Public Sub New() End Sub End Class
所以我想要一个共享方法,它找到所有数据库条目并返回一个自己类型的实例数组,例如模型().
这就是为什么我想保持find-method共享而不是绑定到实例.
您域中的所有类都可以从Entity类继承
Public MusTinherit Class Entity '... End Class
您的Model类,使用您的方法Find
Public Class Model Public Shared Sub Find(Of T As Entity)() ' You could know the name of T to find the table Dim tablename As String = GetType(T).Name '... End Sub End Class
您的域的一类,例如:用户类
Public Class User Inherits Entity ' ... End Class
最后,举例说明如何实例化Find方法
@H_850_10@model.Find(Of User)() '...我不知道如果这是你的意思,你觉得这有用吗?
以上是大佬教程为你收集整理的vb.net – 在子类中“覆盖”共享成员的方法全部内容,希望文章能够帮你解决vb.net – 在子类中“覆盖”共享成员的方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。