Everyone’s different but I find that if I want to learn something new, I HAVE to find a concrete use case for it first. It’s utterly futile (and I’ll just procrastinate forever) if I just try to only slog through a bunch of tutorials without an endgame in mind. Biting off more than I can chew usually works for me because I’m stubborn AF.
- Start blindly flailing like a madlad on a project until I can define a particular gap in knowledge. 2. Research said gap. 3. Rinse, repeat.
This should be a different post, but it depends on what you’re planning to do with them. Enums are flexible and could totally make do there regardless of semantic cyclical-ness. Remember with enums you’re able to just ignore the values altogether; that’s one of the major reasons to use them. If I have a limited list of flags that I use directly in code, they don’t have to change at runtime, and don’t need additional data associated to them (like ‘number of days’ or something similar), I’ll use an enum.
If you wanted to actually cycle though them in your code, it might be clearer to use both a manager class with a enum. Inside the class, you could use a something like a CurrentSeason property and have a NextSeason, PreviousSeason method to cycle through them. Using modular arithmetic would allow you to change the number of items to cover future features like seasonal transitions or something without having to modify any of your code.