이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 24485|회답: 3

[출처] C# Enum Simple permission Design은 FlagsAttribute 속성을 사용합니다

[링크 복사]
게시됨 2019. 4. 22. 오후 2:30:51 | | | |
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());
결과: 진실입니다

C# 열거는 플래그 기능을 사용하며, 하나의 열거 변수에 여러 값을 저장합니다
https://www.itsvse.com/thread-4661-1-1.html
(출처: Architect_Programmer)







이전의:System.MissingMethodException: 找不到方法:“Void Dapper.DynamicP...
다음:C#에서 가상 추상과 (추상) 추상, 인터페이스 간의 유사점과 차이점...
게시됨 2019. 4. 23. 오전 8:28:32 |
신중하게 토론하고 함께 발전하세요! - 2019년 4월 23일 화요일 08:28:32 GMT+0800 (중국 표준시)
게시됨 2019. 11. 11. 오전 9:49:58 |
다중 선택 열거에 대한 설명은 어떻게 얻을 수 있나요?
 집주인| 게시됨 2019. 11. 11. 오전 11:00:19 |
푸른 하늘과 흰 구름 2019-11-11 09:49에 게시됨
다중 선택 열거에 대한 설명은 어떻게 얻을 수 있나요?

아래 기사를 참고해 주세요

C# Enum enum 타입 연산 확장 클래스
https://www.itsvse.com/thread-7286-1-1.html
(출처: Architect_Programmer)
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com