[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