我喜歡寫枚舉或整數通過選項來我的方法。在C#中是否有模式或方法來檢查(int 1,2,4,8,...)選項是否爲真或假。我認爲應該很容易通過二進制函數。有圖案或C#中的方法來檢查,如果一個(INT 1,2,4,8,...)選項是真的還是假
class Program
{
public enum Option
{
Option_A = 1,
Option_B = 2,
Option_C = 4,
Option_D = 8,
}
static void Main(string[] args)
{
int activeOption = 5; // Means I activeted the Option_A and Option_C
if (IsOption(activeOption, Option.Option_A)) { /*do work*/ }
if (IsOption(activeOption, Option.Option_B)) { /*do work*/ }
if (IsOption(activeOption, Option.Option_C)) { /*do work*/ }
if (IsOption(activeOption, Option.Option_D)) { /*do work*/ }
}
private static bool IsOption(int activeOption, Option option)
{
/*Evaluate if IsOption is true or false*/
throw new NotImplementedException();
}
}
編輯
我僅限我可以創建這樣的選擇多少?
爲什麼使用int而不是Option? – 2011-05-20 09:22:59
@Martinho如果您看代碼示例,則需要多個選項可供選擇。int比一組選項更具空間效率。 – 2011-05-20 09:25:33
@Robin:一個選項枚舉與int類型一樣具有空間效率。猜猜爲什麼:它實際上是一個整數。 – 2011-05-20 09:27:24