C#에서는 비트 단위로 정수 객체에 대해 논리 연산을 수행할 수 있습니다. 비트별 논리 연산의 의미는 조작할 객체의 각 비트를 차례로 가져가고, 각 비트의 논리 연산 결과는 결과 값의 각 비트가 된다는 것입니다. C#이 지원하는 비트 논리 연산자는 다음 그림에 나와 있습니다:
기본 허가 설계:
<summary>
///權限列舉 </summary> [깃발속성] publicenum퍼퍼레이션
{ 설명("설정 안 됨")] None=0, [설명("생성")] Create=1, [설명("읽기")] Read=2, [설명("업데이트")] 업데이트=4, [설명("삭제")] 삭제=8, [설명("모든 특징")] All=Create| 읽기| 업데이트| 삭제
}
기법 1: 2의 멱 값을 미래 비트 연산의 열거 값으로 사용(&AND, |OR, ^XOR).
팁 2: 기존 권한에 새로운 권한 액션을 추가하세요. (수술)
Permissionspermission=Permissions.None; 허가=허가| Permissions.Create; MessageBox.Show(허가. ToString()); 결과: 만들기
팁 3: [FlagsAttribute] 태그를 추가하세요
Permissionspermission=Permissions.None; 허가=허가| Permissions.Create; MessageBox.Show(허가. ToString()); 결과:생성([FlagsAttribute]는 결과에 영향을 주지 않습니다)
허가=허가| 허가. 읽기; MessageBox.Show(허가. ToString()); 결과: 3 ([FlagsAttribute] 미추가) 결과: 생성, 읽기 ([FlagsAttribute]를 추가함)
팁 4: 기존 권한에서 특정 권한 액션을 제거하세요. (XOR 및 AND 컴퓨팅 응용)
Permissionspermission=Permissions.None; 허가=허가| Permissions.Create; MessageBox.Show(허가. ToString()); 결과: 만들기
허가=허가| 허가. 읽기; 허가=허가| 허가 사항.업데이트; MessageBox.Show(허가. ToString()); 결과: 생성, 읽기, 업데이트
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(허가. ToString()); 결과: 생성, 업데이트
팁 5: 현재 권한(그리고 운영)에서 특정 권한이 있는지 확인하세요
Permissionspermission=Permissions.None; 허가=허가| Permissions.Create; MessageBox.Show(허가. ToString()); 결과: 만들기
허가=허가| 허가. 읽기; 허가=허가| 허가 사항.업데이트; MessageBox.Show(허가. ToString()); 결과: 생성, 읽기, 업데이트
permission=(permission&(Permissions.All^Permissions.Read)); MessageBox.Show(허가. ToString()); 결과: 생성, 업데이트
boolIsCreatable=false; if((permission&Permissions.Create)==Permissions.Create)
{ IsCreatable=참;
} 그렇지 않으면
{ IsCreatable=false;
} MessageBox.Show(IsCreatable.ToString()); 결과: 진실입니다
|