在vb使用用户自定义类型时,如何把其中的UDT字段名称作为参数使用?
比如我定义了这样的一个数据类型:PublicTypeCDataRecordsNameAsStringiSNAsLongbUseAsBooleanEndType然后,在fu...
比如我定义了这样的一个数据类型:
Public Type CDataRecord
sName As String
iSN As Long
bUse As Boolean
End Type
然后,在function que() 中, 我把一个CDataRecord类型的变量c传进去,同时传入一个参数inputv, inputv的值可以是上述"sName","iSN"或"bUse",
函数的用途是根据输入的字段名称对变量c中的字段值进行处理,然后输出。
Function que(c As CDataRecord, inputv As String)
....
End Function
我的意思是:假定CDataRecord是通用的数据类型,也就是其字段名称是不固定的,也就是说,在我的函数que中,不可以使用
if inputv="sName" then
c.sName ...
elseif inputv="iSN" then
...
end if
也不能使用:
select case inputv
case "sName"
c.sName ...
case "iSN"
c.iSN ...
end select
这样的语句。
应当如何实现呢? 展开
Public Type CDataRecord
sName As String
iSN As Long
bUse As Boolean
End Type
然后,在function que() 中, 我把一个CDataRecord类型的变量c传进去,同时传入一个参数inputv, inputv的值可以是上述"sName","iSN"或"bUse",
函数的用途是根据输入的字段名称对变量c中的字段值进行处理,然后输出。
Function que(c As CDataRecord, inputv As String)
....
End Function
我的意思是:假定CDataRecord是通用的数据类型,也就是其字段名称是不固定的,也就是说,在我的函数que中,不可以使用
if inputv="sName" then
c.sName ...
elseif inputv="iSN" then
...
end if
也不能使用:
select case inputv
case "sName"
c.sName ...
case "iSN"
c.iSN ...
end select
这样的语句。
应当如何实现呢? 展开
展开全部
你说的不能(不可以)使用是你自己规定,不要用选择还是指VB无法实现?
追问
是我自己规定不要这样用。
再补充一句,其实我是想,象在ADO记录集中那样,如果c是一个用户自定义数据类型CDataRecord 的实例,我希望以c("FieldName")的字段参数方式来访问c中的数据,而不是用固定的c.FieldName方式来访问。请问有什么好的办法呢?
追答
我理解了,你是希望直接用1个变量的值去代替另1个变量的名,这个以前在Foxbase里叫做宏代换,但是在VB里无法实现(至少我现在不知道如何实现).
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询