RealBasic的Introspection有点不同于我的预期。
我的意图是:
创建一个MainObject,其他对象将从它继承两个或三个方法,以简化。
Method 1-> Returns to the child class itself all of its properties, types and values.
Method 2-> Would call Method1 and with the information, save the child Object.
所以,对于方法1,我想写一个广义的自省,每个子类都可以很容易地返回我需要的方法2来完成它的工作。
为什么我想要这个?这样我就可以有几十个对象知道如何保存,如何绘制它们自己而不用担心这里或那里的属性修改等等。
但是使用什么RealBasic教程和参考提供不工作,因为它需要我有它发生在对象之外等…也就是说,我可以很容易地在ObjectA中获取ObjectB的属性,方法等,但我想在ObjectA中获取A的属性,而不是B的
我已经发现如何…非常简单,创建MainClass并在其内部创建一个简单的方法WhoAmI,该方法可以返回数组,字典等…
Dim thisClassTypeInfo As Introspection.TypeInfo = Introspection.GetType(Self)
Dim thisClassProperties() As Introspection.PropertyInfo = thisClassTypeInfo.GetProperties
Dim thisClassMethods() As Introspection.MethodInfo = thisClassTypeInfo.GetMethods
For Each myProperty As Introspection.PropertyInfo In thisClassProperties
// Then here use myProperty.Name, myProperty.Value(Self).StringValue
// or myProperty.Value(Self).anyotheroption and create a dictionary
// or array with the results and return it.
Next