With enum在.net下你可以使用的最大號碼是ULong。
這意味着最多64個標誌。當你使用標誌(Enum)時,你有一個64的限制。當你達到極限時有什麼選擇?
當您需要超過64個標誌時,會有什麼選擇?
編輯
對不起,我忘了補充這一點,替代方案,仍然有位運算至少其中之一工作; 和和或。
使用喬希愛因斯坦建議,我想出了這個,它有道理嗎?
class bitArrayFlag
{
private const int flagSize = 255; //allow X numbers of flags
public BitArray flag1;
public BitArray flag2;
public BitArray flagN;
public bitArrayFlag()
{
int flagPos = 0;
bool[] flagBit = new bool[flagSize];
flagBit[flagPos] = true;
flag1 = new BitArray(flagBit);
flagBit[flagPos] = false;
flagPos += 1;
flagBit[flagPos] = true;
flag2 = new BitArray(flagBit);
//...
//...
//...
flagBit[flagPos] = false;
flagPos += 1;
flagBit[flagPos] = true;
flagN = new BitArray(flagBit);
}
}
重新設計?許多標誌聽起來過於複雜。 – 2010-03-03 14:54:49
到目前爲止我只有31個標誌,但我只是想確保我有一個備份計劃,如果需要的話 – Fredou 2010-03-03 14:58:48
YAGNI浮現在腦海。集中精力解決你的問題。 – 2012-04-20 21:18:50