[Gambas-user] Question about collections and inheritance

Benoît Minisini gambas at ...1...
Sat Aug 28 23:36:31 CEST 2010


>    Hi all.
> 
>    I'm trying to code a very basic Xml Excel Generator, and I'm workin with
> a collection. This is my code:
> 
> ' Gambas class file
> 
> Inherits Collection
> 
> Public Function Add($ID As String) As Style
> 
>   Dim $style As New Style($ID)
> 
>   Super.Add($style, $ID)
> 
>   Return $style
> 
> End
> 
> Public Function _GetXml() As String
> 
>   Dim $style As Style
>   Dim $text As String = "\t<s:Styles>\n"
> 
>   For Each $style In Me
>     $text &= $style._GetXml() & "\n"
>   Next
> 
>   $text &= "\t</s:Styles>"
>   Return $text
> 
> End
> 
>    Style is another class I have. My class inherits the Collection class
> and I override the Add function. All of this works fine, my question is
> about another Collection functionality:
> 
>     With a normal Collection we can do something like this:
> 
>   Dim $col As Collection
>   $col.Add("My value", "key")
>   Print *$col["key"]*
> 
>    I can access to my item whit his "key". How can I override this
> functionality in my class, because Gambas return me a Variant data type
> element and I want to return my own data type, my Style class.
> 
>    Thanks.
> 
> P.S. Sorry my english, I trying to learn it but I'm still newbie
> 

You have to override the _get() method. Something like that I presume:

Public sub _get(Id As String) As Style

  Return Super[Id]

End

Regards,

-- 
Benoît Minisini




More information about the User mailing list