How to use the keyword 'Object' ?
BlitzMax Forums/BlitzMax Beginners Area/How to use the keyword 'Object' ?
| ||
All, my goal is to build a function type - or a method - which accepts any type structure, like for example: type base function create(t:type) local test:t = new t return test end typeThe above code does not compile: seems that 'Type' can't be defined as parameter. So I tryed with 'Object': type base function create(t:Object) local test:t = new t end typeBut no luck. The goal here, is to make something like: type base function create(o:whatever) local test:o = new o end function end type type A extends base end type type B extends base end type . . base.create(A) base.create(B)Am I missing something obvious here ? So far, the way to make what I mean, seems to be this: type base function create(o:base) . . end function type A extends base end type type B extends base end type . . base.create(New A) base.create(New B)This works, but I wanted to create the base class in such a manner that I can make that 'New A' or 'New B' in the function body - that is, inside the base type function, instead of in the function call. In other terms, the base type should be able to create a new type instance, without to know which type is passed to it. I hope I explained the question; another example could be the Object implementation in VB.NET: function set_text(control as Object) control.text = "hello" end function you can then call the above function with any 'object' - all of them should have, of course, a property called 'text' in order to work. In the following example, the function is called with two different object types, a label and a textbox: dim lab as new label dim tex as new textbox set_text(lab) set_text(tex) Thanks in advance, Sergio. |
| ||
you can't do it this way You can not use objects to create new objects, new is meant for Typenames like base. there is no "new like object" command |