Is this the proper way to do it?

Rumbu rumbu at rumbu.ro
Sat Feb 13 09:54:28 UTC 2021


On Saturday, 13 February 2021 at 05:52:34 UTC, Jack wrote:
> I have a base class A, where I make specific operator depending 
> on the derived class type. Currently I'm using something like 
> this:
>
> c is a class derived from A
> bool shouldDoX = (cast(X)c) !is null || (cast(Y)c) !is null || 
> (cast(K)c) !is null ... ;
>
> as the number of cast(C) !is null is growing, I'm afraid of 
> this being a inelegant or even poor performance approach. How 
> would you do that?

Option 1, reverse the condition, && op will shortcut boolean 
conditions

bool shouldNotDoX = cast(X)c && cast(Y)c && cast(K)c && ...

Option 2, reverse the condition by testing the classes that are 
not supposed to "do" it, if you have less classes in that 
category.

bool shoudldNotDoX = cast(P)c || cast(Q)c




More information about the Digitalmars-d-learn mailing list