Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is what F# does (define multiple classes), but each of these classes only takes one line of code.


Also, it defines them as nested classes, and marks the outer class as `sealed`, as they're closed types, and it prevents the type being extended with new cases.

C# can't do this because the compiler rejects putting `abstract` and `sealed` on the same type.


You can kind of solve this by making the constructor of the outer class private and defining all subtypes as nested types.

It's not ideal, but it works.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: