toString() through interface

David Held via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Apr 19 18:04:38 PDT 2014


On 4/19/2014 5:45 PM, Adam D. Ruppe wrote:
> On Sunday, 20 April 2014 at 00:35:30 UTC, David Held wrote:
>> Since all implementations of an interface must derive from Object
>
> That's not true. They can also come from IUnknown or a C++ interface.

Ok, that's a good reason!

>>     cast(Object)(foo).toString();
>
> (cast(Object)foo).toString() might work
>
>
> This might return null tho if it is a non-D object through the interface!

Yes, I later discovered that I didn't understand the cast syntax 
properly.  This does indeed work, but leads to the discovery that 
Object.toString() is not pure. :(  But that's tolerable.  Also, 
declaring toString() in the interfaces avoids the need for a cast 
entirely, although I feel this is a bit of a dirty hack.

Dave



More information about the Digitalmars-d-learn mailing list