C# 열거 중의 비트 연산 권한 분배에 대한 간단한 설명
1 & 0 = 0, 1 | 0 = 1, ~1 = 0
권한을 설계할 때 우리는 권한 관리 조작을 C#비트 운산으로 바꾸어 처리할 수 있다.
첫 번째 단계에서는 모든 권한 관리 작업을 나타내는 열거를 설정합니다.
[Flags]
public enum Permissions
{
Insert = 1,
Delete = 2,
Update = 4,
Query = 8
}
[Flags]는 이 매거진이 C#비트 연산을 지원할 수 있음을 나타낸다. 매거진의 모든 값은 우리가 2의 n차원으로 값을 부여한다. 이렇게 2진법으로 표시할 때 마침 1 = 0001, 2 = 0010, 4 = 0100, 8 = 1000 등이다. 한 명은 하나의 권한을 나타내고 1은 이 권한이 있음을 나타내고 0은 없음을 나타낸다.
다음은 권한에 대한 연산입니다.
1. 권한의 덧셈, 사용과 연산으로 실현한다.우리는 0001 | 0100 = 0101을 알고 있습니다. 이렇게 하면 1위와 3위의 권한이 동시에 관리된다는 것을 의미합니다. 매거는 다음과 같습니다.
Permissions per = Permissions.Insert | Permissions.Update
2. 권한의 감법은 연산+비연산으로 이루어진다. 위에서 Insert 권한을 제거하려면 다음과 같이 조작한다.
Permissions per &= ~Permissions.Insert 즉 0101 & ~0001 = 0101 & 1110 = 0100
3. 권한의 판단, 사용과 연산, 한 사용자가 이 조작 권한을 가지고 있는지 판단할 때 사용자의 권한과 조작 권한을 연산하고 얻은 결과가 조작 권한 관리라면 사용자가 이 권한을 가지고 있음을 나타낸다.
Permissions per = Permissions.Insert | Permissions.Update;
if(per & PermissionsPermissions.Insert = Permissions.Insert)
{
//
}
비교 과정은 0101 & 0001 = 0001이고 0001의 0자리는 C#위 연산으로 다른 위치를 0으로 설정하여 1만 비교하는 이 자리로 변한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.