[Gambas-user] Question about collections and inheritance

Lord Quo lord.quo at ...626...
Mon Aug 30 16:58:17 CEST 2010


   Excellent!

   Thans   :-)

--------------------------------------------------
From: "Benoît Minisini" <gambas at ...1...>
Sent: Saturday, August 28, 2010 4:36 PM
To: "mailing list for gambas users" <gambas-user at lists.sourceforge.net>
Subject: Re: [Gambas-user] Question about collections and inheritance

>>    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