[Flags] enum Flag_FilePerms : int
protected string __alias__;
protected Type __etype__;
protected Type __utype__;
public FlagEnum(string sAlias, Type etype)
throw new Exception($"etype is not an Enum Type. Got: {etype.Name}");
this.__utype__ = Enum.GetUnderlyingType(etype);
class Flag_FilePerms_Wrapper : FlagEnum
public Flag_FilePerms None = Flag_FilePerms.None;
public Flag_FilePerms Create = Flag_FilePerms.Create;
public Flag_FilePerms Read = Flag_FilePerms.Read;
public Flag_FilePerms Update = Flag_FilePerms.Update;
public Flag_FilePerms Delete = Flag_FilePerms.Delete;
public Flag_FilePerms_Wrapper(string sAlias) : base(sAlias, typeof(Flag_FilePerms))
private static void pc(object o){Console.Write($"{o}\n");}
static Flag_FilePerms_Wrapper FilePerms = new Flag_FilePerms_Wrapper("FilePerms");
static void Main(string[] args)
var perms = FilePerms.Update | FilePerms.Create;
pc($"perms.HasFlag(FilePerms.Create): {perms.HasFlag(FilePerms.Create)}");
pc($"perms.HasFlag(FilePerms.Delete): {perms.HasFlag(FilePerms.Delete)}");
var perms_none = FilePerms.None;
pc($"perms_none == FilePerms.None: {perms_none == FilePerms.None}");
pc($"perms == FilePerms.None: {perms == FilePerms.None}");