Consider the following
class Body
{
[Flags]
enum Organs { None = 0, Brain = 1, Heart = 2, Kidney = 4, Skin = 8 }
Organs damagedOrgan = Organs.Heart;
Organs currentOrgan = Organs.Kidney;
Organs favoriteOrgan = Organs.Brain;
Organs biggestOrgan = Organs.Skin;
Organs allOrgans = Organs.Heart | Organs.Kidney | Organs.Brain | Organs.Skin;
}
Could in certain cases be much more clean to just write as such:
using static Human.Body.Organs;
class Body
{
[Flags]
enum Organs { None = 0, Brain = 1, Heart = 2, Kidney = 4, Skin = 8 }
Organs damagedOrgan = Heart;
Organs currentOrgan = Kidney;
Organs favoriteOrgan = Brain;
Organs biggestOrgan = Skin;
Organs allOrgans = Heart | Kidney | Brain | Skin;
}
This will however generate the following error.
Error CS0122 'Body.Organs' is inaccessible due to its protection level
Is there any way to have a using static
block on an enum
in a class contained (private) enum to avoid having to excessively name the enum?
using static
will only work on accessible members - so private enum
is out. However, it depends on how private you want your enum
to be. If you're ok with making it internal
, that'll work.