Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 24485|Yanıt: 3

[Kaynak] C# Enum Simple Permission Design, FlagsAttribute özelliğini kullanır

[Bağlantıyı kopyala]
Yayınlandı 22.04.2019 14:30:51 | | | |
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

C# enumları, birden fazla değerin tek bir enumerasyon değişkeninde saklandığı Bayraklar özelliğini kullanır
https://www.itsvse.com/thread-4661-1-1.html
(Kaynak: Architect_Programmer)







Önceki:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Önümüzdeki:C#'daki sanal ve (soyyut) özet ile arayüz arasındaki benzerlikler ve farklılıklar...
Yayınlandı 23.04.2019 08:28:32 |
Dikkatlice tartışın ve birlikte gelişin! - Salı 23 Nis 2019 08:28:32 GMT+0800 (Çin Standart Saati)
Yayınlandı 11.11.2019 09:49:58 |
Çok seçmeli bir sayım için açıklamayı nasıl elde edebilirim?
 Ev sahibi| Yayınlandı 11.11.2019 11:00:19 |
Mavi Gökyüzü ve Beyaz Bulutlar 2019-11-11 09:49 tarihinde yayınlandı
Çok seçmeli bir sayım için açıklamayı nasıl elde edebilirim?

Lütfen aşağıdaki makaleye bakınız

C# Enum enum tipi işlem uzatma sınıfı
https://www.itsvse.com/thread-7286-1-1.html
(Kaynak: Architect_Programmer)
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com