From bce7847f206d9cb636644101cf2534370f7594fd Mon Sep 17 00:00:00 2001 From: DomCR Date: Mon, 12 Feb 2024 15:16:12 +0100 Subject: [PATCH] flags --- CSUtilities/Extensions/EnumExtensions.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/CSUtilities/Extensions/EnumExtensions.cs b/CSUtilities/Extensions/EnumExtensions.cs index 1f75318..44d063c 100644 --- a/CSUtilities/Extensions/EnumExtensions.cs +++ b/CSUtilities/Extensions/EnumExtensions.cs @@ -26,6 +26,24 @@ public static T GetValueByName(string name) return Enum.GetValues(typeof(T)).Cast().FirstOrDefault(o => o.ToString() == name); } + /// + /// Adds a flag value to enum + /// + public static T AddFlag(this T value, T flag) + where T : Enum + { + return (T)(object)((int)(object)value | (int)(object)flag); + } + + /// + /// Removes the flag value from enum + /// + public static T RemoveFlag(this T value, T flag) + where T : Enum + { + return (T)(object)((int)(object)value & ~(int)(object)flag); + } + /// /// Gets a string value for a particular enum value. ///