Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 24485|Jawab: 3

[Sumber] Desain Izin Sederhana C# Enum menggunakan properti FlagsAttribute

[Salin tautan]
Diposting pada 22/04/2019 14.30.51 | | | |
Di C#, Anda dapat melakukan operasi logis pada objek bilangan bulat demi bit. Arti dari operasi logis demi bit adalah bahwa setiap bit dari objek yang akan dioperasikan diambil secara bergantian, dan hasil operasi logis dari setiap bit adalah setiap bit dari nilai hasil. Operator logika bit yang didukung oleh C# ditunjukkan pada gambar berikut:



Desain izin dasar:

<summary>
///權限列舉
</summary>
[Atribut Bendera]
publicenumIzin
{
Deskripsi("Tidak dikonfigurasi")]
Tidak ada = 0,
[Deskripsi("Buat")]
Buat=1,
[Deskripsi("Baca")]
Baca = 2,
[Deskripsi("Pembaruan")]
Pembaruan=4,
[Deskripsi("Hapus")]
hapus = 8,
[Deskripsi("Semua Fitur")]
Semua=Buat| Baca| Pembaruan| Hapus
}



Teknik 1: Gunakan nilai pangkat 2 sebagai nilai pencacahan untuk operasi bit di masa mendatang (&AND, |OR, ^XOR).


Tip 2: Tambahkan tindakan izin baru ke izin yang ada. (ATAU Operasi)

permissionspermission=permissions.none;
izin=izin| Izin.Buat;
MessageBox.Show(izin. ToString());
Hasil:Buat

Tip 3: Tambahkan tag [FlagsAttribute]

permissionspermission=permissions.none;
izin=izin| Izin.Buat;
MessageBox.Show(izin. ToString());
Result:Create([FlagsAttribute] tidak memengaruhi hasil)

izin=izin| Izin.Baca;
MessageBox.Show(izin. ToString());
Hasil: 3 ([FlagsAttribute] tidak ditambahkan)
Hasil:Buat,Baca (tambahkan [FlagsAttribute])


Tips 4: Hapus tindakan izin tertentu dari izin yang ada. (Aplikasi komputasi XOR dan AND)

permissionspermission=permissions.none;
izin=izin| Izin.Buat;
MessageBox.Show(izin. ToString());
Hasil:Buat

izin=izin| Izin.Baca;
izin=izin| Izin.Pembaruan;
MessageBox.Show(izin. ToString());
Hasil:Buat,Baca,Perbarui

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(izin. ToString());
Hasil:Membuat,Memperbarui


Tip 5: Tentukan apakah Anda memiliki izin tertentu dalam izin saat ini (operasi AND)

permissionspermission=permissions.none;
izin=izin| Izin.Buat;
MessageBox.Show(izin. ToString());
Hasil:Buat

izin=izin| Izin.Baca;
izin=izin| Izin.Pembaruan;
MessageBox.Show(izin. ToString());
Hasil:Buat,Baca,Perbarui

permission=(permission&(Permissions.All^Permissions.Read));
MessageBox.Show(izin. ToString());
Hasil:Membuat,Memperbarui

boolIsCreatable=false;
if((permission&permissions.create)==Permissions.Create)
{
IsCreatable=true;
}
yang lain
{
IsCreatable=false;
}
MessageBox.Show(IsCreatable.ToString());
Hasil: Benar

Enum C# menggunakan fitur Bendera, di mana beberapa nilai disimpan dalam satu variabel pencacahan
https://www.itsvse.com/thread-4661-1-1.html
(Sumber: Architect_Programmer)







Mantan:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Depan:Persamaan dan perbedaan antara abstrak virtual dan (abstrak) dan antarmuka di C#...
Diposting pada 23/04/2019 08.28.32 |
Berdiskusi dengan cermat dan tingkatkan bersama! - Tue Apr 23, 2019 08:28:32 GMT+0800 (Waktu Standar China)
Diposting pada 11/11/2019 09.49.58 |
Bagaimana cara mendapatkan deskripsi untuk pencacahan multi-pilih?
 Tuan tanah| Diposting pada 11/11/2019 11.00.19 |
Langit biru dan awan putih Dipaparkan pada 2019-11-11 09:49
Bagaimana cara mendapatkan deskripsi untuk pencacahan multi-pilih?

Silakan lihat artikel di bawah ini

Kelas ekstensi operasi tipe enum C# Enum
https://www.itsvse.com/thread-7286-1-1.html
(Sumber: Architect_Programmer)
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com