C#'da, tam sayı nesneler üzerinde mantıksal işlemler bitle gerçekleştirilebilir. Bitle mantıksal işlemin anlamı, işletilecek nesnenin her bitinin sırayla alınması ve her bitin mantıksal işlem sonucunun sonuç değerinin her biti olmasıdır. C# tarafından desteklenen bit mantığı operatörleri aşağıdaki şekilde gösterilmiştir:
Temel izin tasarımı:
<summary>
///權限列舉 </summary> [BayraklarÖzellik] publicenumPermissions
{ Açıklama("Yapılandırılmamış")] Hiç=0, [Tanım("Yarat")] Create=1, [Açıklama("Oku")] Read=2, [Açıklama("Güncelleme")] Güncelleme=4, [Açıklama("Sil")] Delete=8, [Açıklama("Tüm Özellikler")] Hepsi=Yarat| Oku| Güncelleme| Sil
}
Teknik 1: 2'nin güç değerini gelecekteki bit işlemleri için (&AND, |OR, ^XOR) bir sayılama değeri olarak kullanın.
İpucu 2: Mevcut izne yeni bir izin eylemi ekleyin. (OR Operasyonu)
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Sonuç:Yarat
İpucu 3: [FlagsAttribute] etiketini ekle
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Result:Create([FlagsAttribute] sonucu etkilemez)
permission=permission| İzinler.Oku; MessageBox.Show(permission. ToString()); Sonuç: 3 ([FlagsAttribute] eklenmedi) Sonuç:Yarat,Oku ([FlagsAttribute]'i ekle)
İpucu 4: Mevcut izinden belirli bir izin işlemini kaldırın. (XOR ve AND bilişim uygulamaları)
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Sonuç:Yarat
permission=permission| İzinler.Oku; permission=permission| Permissions.Update; MessageBox.Show(permission. ToString()); Sonuç:Oluştur, Oku, Güncelle
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(permission. ToString()); Sonuç:Oluştur, Güncelle
İpucu 5: Mevcut izinle (VE işlemde) belirli bir izne sahip olup olmadığını belirleyin
Permissionspermission=Permissions.None; permission=permission| Permissions.Create; MessageBox.Show(permission. ToString()); Sonuç:Yarat
permission=permission| İzinler.Oku; permission=permission| Permissions.Update; MessageBox.Show(permission. ToString()); Sonuç:Oluştur, Oku, Güncelle
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(permission. ToString()); Sonuç:Oluştur, Güncelle
boolIsCreatable=yanlış; if((permission&Permissions.Create)==Permissions.Create)
{ IsCreatable=true;
} else
{ IsCreatable=yanlış;
} MessageBox.Show(IsCreatable.ToString()); Sonuç: Doğru
|