Proposal: Support for objects in switch statements

Atila Neves atila.neves at gmail.com
Mon Nov 6 10:10:29 UTC 2017


On Wednesday, 1 November 2017 at 01:16:32 UTC, solidstate1991 
wrote:
> After I started to alter my graphics engine to use the multiple 
> kinds of bitmaps (now using multiple language features, like 
> templates and aliases) on one layer, I noticed that type 
> detection of bitmap objects would be easier and better 
> readable, if instead of:
>
> if(bitmapObject.classinfo == typeof(Bitmap4Bit)){
> ...
> }else if(bitmapObject.classinfo == typeof(Bitmap8Bit)){...
>
> I could easily use this:
>
> switch(bitmapObject.classinfo){
> case typeof(Bitmap4Bit):
> ...
> case typeof(Bitmap8Bit):
> }
>
> On the other hand I cannot really think other uses for such 
> language feature, maybe with structs.

Checking for types at runtime is a code smell in OOP. Sometimes 
necessary, especially if doing multiple dispatch, but never done 
gladly. There's already a way to dispatch on type: virtual 
functions.

Atila


More information about the Digitalmars-d mailing list