我有一些用户定义的类型,EG
Public Type Country
City1 as City
City2 as City
City3 as City
End Type
Public Type City
Name as String
Buildings as Long
People as byte
End Type
我需要做的是,写一个函数。这能够计算任何Object传递给它的变量数。
这将用于网络优化。我想避免在字符串的情况下发送等于0或未设置的数据。
我的最终目标是服务器将对我的对象中的变量进行计数,标记哪些是非0,并存储在位标志字节中。将字节或多个字节发送到客户端,以及不等于0的变量。
所以我会有一个看起来像这样的数据包: 字节(){PacketIDByte,BitFlagBytes(),NotEmptyData()}
客户可以访问相同的数据,因此它可以计算对象拥有的变量数量,并确定哪些变量已经发送并需要设置。
希望我足够清楚,(这样我希望将我的58 * 297字节数据包降低到6到24 * 297字节左右)
基本上我需要知道如何遍历对象中的所有属性。
这是一个无法运行的代码块,我觉得这说明了我要完成的任务。
Public Function GetUDTPropertyCount(ByRef AnyObject As Object) As Long
Dim Obj As Object
Dim Count As Long
For Each Obj In AnyObject 'Loop through properties
If TypeOf Obj Is Object Then
Count = Count + GetUDTPropertyCount(Obj)
GoTo NextObj
Else 'If typeOf Obj is a value type then
Count = Count + 1
End If
NextObj:
Next Obj
GetUDTPropertyCount = Count
End Function