Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 24485|Respuesta: 3

[Fuente] El diseño de permisos sencillo de C# Enum utiliza la propiedad FlagsAttribute

[Copiar enlace]
Publicado en 22/4/2019 14:30:51 | | | |
En C#, puedes realizar operaciones lógicas sobre objetos enteros por bit. El significado de operación lógica por bit es que cada bit del objeto a operar se toma por turno, y el resultado lógico de cada bit es cada bit del valor del resultado. Los operadores de lógica de bits soportados por C# se muestran en la siguiente figura:



Diseño básico de permisos:

<summary>
///權限列舉
</summary>
[AtributoBanderas]
publicenumPermissions
{
Descripción ("No configurado")]
Ninguno=0,
[Descripción("Crear")]
Crear=1,
[Descripción("Leído")]
Leer=2,
[Descripción("Actualización")]
Actualización=4,
[Descripción("Eliminar")]
Delete=8,
[Descripción("Todas las características")]
Todos=Crear| Leer| Actualización| Borrar
}



Técnica 1: Utilizar el valor de potencia de 2 como valor de enumeración para futuras operaciones de bits (&AND, |OR, ^XOR).


Consejo 2: Añade una nueva acción de permiso al permiso existente. (Operación de quirófano)

Permisospermiso=Permisos.Ninguno;
permiso=permiso| Permisos.Crear;
MensajeCuadro.Mostrar (permiso. ToString());
Resultado: Crear

Consejo 3: Añade la etiqueta [FlagsAttribute]

Permisospermiso=Permisos.Ninguno;
permiso=permiso| Permisos.Crear;
MensajeCuadro.Mostrar (permiso. ToString());
Resultado:Crear([FlagsAttribute] no afecta al resultado)

permiso=permiso| Permisos.Leer;
MensajeCuadro.Mostrar (permiso. ToString());
Resultado: 3 ([FlagsAttribute] no añadido)
Resultado:Crear, leer (añadir [FlagsAttribute])


Consejo 4: Elimina una acción de permiso específica del permiso existente. (Aplicaciones informáticas XOR y AND)

Permisospermiso=Permisos.Ninguno;
permiso=permiso| Permisos.Crear;
MensajeCuadro.Mostrar (permiso. ToString());
Resultado: Crear

permiso=permiso| Permisos.Leer;
permiso=permiso| Permisos.Actualización;
MensajeCuadro.Mostrar (permiso. ToString());
Resultado: Crear, Leer, Actualizar

permiso=(permiso&(permisos.Todos^Permisos.Leer));
MensajeCuadro.Mostrar (permiso. ToString());
Resultado: Crear, Actualizar


Consejo 5: Determina si tienes cierto permiso en la operación actual de permiso (AND)

Permisospermiso=Permisos.Ninguno;
permiso=permiso| Permisos.Crear;
MensajeCuadro.Mostrar (permiso. ToString());
Resultado: Crear

permiso=permiso| Permisos.Leer;
permiso=permiso| Permisos.Actualización;
MensajeCuadro.Mostrar (permiso. ToString());
Resultado: Crear, Leer, Actualizar

permiso=(permiso&(permisos.Todos^Permisos.Leer));
MensajeCuadro.Mostrar (permiso. ToString());
Resultado: Crear, Actualizar

boolIsCreatable=false;
if((permiso&Permisos.Crear)==Permisos.Crear)
{
IsCreateable=true;
}
si no,
{
IsCreateable=falso;
}
MensajeCuadro.Mostrar(EsCreador.ToString());
Resultado: Verdadero

Los enums en C# utilizan la función Flags, donde se almacenan varios valores en una variable de enumeración
https://www.itsvse.com/thread-4661-1-1.html
(Fuente: Architect_Programmer)







Anterior:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
Próximo:Las similitudes y diferencias entre abstracth virtual y (abstracto) y la interfaz en C#...
Publicado en 23/4/2019 8:28:32 |
¡Hablad con atención y mejorad juntos! - Mar 23 Abr 2019 08:28:32 GMT+0800 (Hora estándar de China)
Publicado en 11/11/2019 9:49:58 |
¿Cómo consigo una descripción para una enumeración multi-select?
 Propietario| Publicado en 11/11/2019 11:00:19 |
Cielo azul y nubes blancas Publicado el 11-11-2019 09:49
¿Cómo consigo una descripción para una enumeración multi-select?

Por favor, consulte el artículo que aparece a continuación

C# Clase de extensión de operación tipo enum
https://www.itsvse.com/thread-7286-1-1.html
(Fuente: Architect_Programmer)
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com