Çünkü onlar ikisinin gücüdür ve bunu yapabilirim:
var permissions = Permissions.Read | Permissions.Write;
Ve belki sonra ...
if( (permissions & Permissions.Write) == Permissions.Write )
{
// we have write access
}
Her bitin bazı izinlere (veya numaralandırılmış değerin mantıksal olarak karşılık geldiği her neyse) karşılık geldiği bir bit alanıdır. Bunlar olarak tanımlanmış 1, 2, 3, ...
olsaydınız, bu şekilde bitsel operatörleri kullanamaz ve anlamlı sonuçlar elde edemezdiniz. Daha derine inmek için ...
Permissions.Read == 1 == 00000001
Permissions.Write == 2 == 00000010
Permissions.Delete == 4 == 00000100
Burada bir model fark ettiniz mi? Şimdi orijinal örneğimi alırsak, yani,
var permissions = Permissions.Read | Permissions.Write;
Sonra...
permissions == 00000011
Görmek? Hem Read
ve Write
bit'lerinin ve bunu bağımsız kontrol edebilirsiniz (yani Ayrıca haber Delete
bit edilir değil ayarlamak ve dolayısıyla bu değer silmek için izniniz iletmek değildir).
Tek bir bit alanında birden çok bayrak saklanmasına izin verir.