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
|