Putting things in an enum's scope

Mike Parker via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Apr 6 18:47:58 PDT 2016


On Wednesday, 6 April 2016 at 13:59:42 UTC, pineapple wrote:
> Is there any way in D to define static methods or members 
> within an enum's scope, as one might do in Java? It can 
> sometimes help with code organization. For example, this is 
> something that coming from Java I'd have expected to be valid 
> but isn't:
>
> enum SomeEnum{
>     NORTH, SOUTH, EAST, WEST;
>
>     static int examplestaticmethod(in int x){
>         return x + 2;
>     }
> }
>
> int z = SomeEnum.examplestaticmethod(2);

Java's enums are classes, which is why that works. Nothing in 
Java can exist outside of a class. D's enums are like those in C. 
They do not define objects, just constant values.


More information about the Digitalmars-d-learn mailing list