【发布时间】:2014-06-28 14:58:33
【问题描述】:
注意:这个问题不是问如何传递一个类的 instance。它询问如何传递具有共享项目的 类。
例如... 关于如何制作一个可以做到这一点的函数的任何想法?
Public Function InsertSQL(ByVal xClass As Type) As String
InsertSQL = "Insert into "
InsertSQL = InsertSQL & xClass.TableName
InsertSQL = InsertSQL & " ("
InsertSQL = InsertSQL & xClass.FieldList
InsertSQL = InsertSQL & " )"
End Function
使用这样的一组类:
Public Class cClient
Public Shared TableName = "Clients"
Public Shared Function FieldList() As String
FieldList = "Name, Phone"
End Function
End Class
Public Class cSale
Public Shared TableName = "Sales"
Public Shared Function FieldList() As String
FieldList = "Name, Amount"
End Function
End Class
我在 Google 上搜索了“如何将类作为参数传递”,但没有找到任何可以访问类共享方法的方法。我只能得到认为我想要传递该类的实例的结果。
请注意,此代码只是一个示例。
而且 - 当然,如果我传递一个类的实例,我没有问题。
但是 - 这不是我想要弄清楚的。
【问题讨论】:
-
使用继承,当你们都类时不需要共享成员从具有通用功能的基类继承
-
在您的函数中声明一个字符串,在该字符串变量上创建插入语句并返回该字符串。
-
共享变量、属性、函数和子例程意味着无需创建类的实例即可访问它们。这两个类只有共享的东西,所以你不需要将类的实例传递给 InsertSql 就可以使用函数内部的类。
-
到目前为止所有回答的人:我已经说过:“如果我传递一个类的实例,我没有问题。但是 - 这不是我想要弄清楚的。”