Con enum sotto .net il numero più grande che è possibile utilizzare è ULong.
Questo significa un massimo di 64 flag.Quando usi flag (Enum) hai un limite di 64. Quali sono le alternative quando raggiungi il limite?
Quale sarebbe l'alternativa quando sono necessarie più di 64 bandiere?
Modifica
Siamo spiacenti, ho dimenticato di aggiungere questo, un'alternativa che avrebbe ancora lavorare con operazioni bit per bit almeno questi uno; e e o.
utilizzando Josh Einstein suggerimento, mi sono inventato questo, ha senso?
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);
}
}
Una riprogettazione? Quante bandiere sembrano troppo complesse. –
finora ho solo 31 flag, ma voglio solo assicurarmi di avere un piano di backup pronto se è necessario – Fredou
YAGNI viene in mente. Concentrati sui problemi che hai. –