IRONSOFTWAREHOME

C# 세트 플래그 열거형 이해하기: 플래그 지정

 .NET CLI를 사용하여 C# 애플리케이션을 쉽게 컨테이너화하는 방법

Tim Corey

9분 57초

C#에서 권한, 구성 또는 설정을 다룰 때 여러 값을 하나의 변수에 저장해야 하는 상황이 종종 발생합니다. 각 설정마다 별도의 부울 값을 사용하는 대신 플래그 열거형을 사용할 수 있습니다. 이 방법은 이진 연산을 활용하여 단일 정수 값 내에서 여러 옵션을 효율적으로 관리합니다.

이 글에서는 Tim Corey의 동영상 " C#의 바이너리: 10분 안에 플래그 할당하기" 를 바탕으로 C#에서 플래그 열거형을 설정하는 방법을 자세히 살펴보겠습니다. Tim은 이진 연산을 사용하여 여러 값을 할당하는 방법을 설명하며, 이를 통해 코드를 더욱 효율적이고 읽기 쉽게 만들 수 있다고 말합니다. 자, 시작해 볼까요?

플래그 열거형 소개

Tim은 이 강의가 C#에서 이진법을 이해하기 위한 시리즈의 일부라고 설명하며 강의를 시작합니다. 이 영상에서 그는 이진 연산을 사용하여 플래그를 할당하는 방법에 집중합니다. 플래그를 사용하면 여러 값을 하나의 정수에 저장할 수 있으므로 권한 관리가 훨씬 간단하고 효율적입니다.

비트 OR 연산을 사용하여 여러 플래그 할당하기

Tim은 비트 OR 연산자를 사용하여 여러 권한을 결합하는 방법을 보여줍니다.|) 연산자. 그는 SQL, Redis 및 BuildSystem과 같은 다양한 권한 수준을 포함하는 열거형 SystemPermissions`를 생성합니다. 여러 변수를 사용하는 대신 모든 권한을 하나의 값에 저장할 수 있습니다.

변수에 여러 권한을 할당하는 예:

// Assume that SystemPermissions is an enum with values SQL, Redis, and BuildSystem
SystemPermissions TimPermissions = SystemPermissions.SQL | SystemPermissions.Redis;

// Print the current permissions - it will include both SQL and Redis
Console.WriteLine(TimPermissions);

이진 표현 표시

무슨 일이 일어나고 있는지를 더 잘 이해하기 위해, 팀은 Convert.ToString(value, 2)을(를) 사용하여 정수 값을 이진 형태로 변환할 것을 제안합니다. 이를 통해 어떤 비트가 설정되어 있는지 시각화할 수 있습니다.

// Convert the permissions to a binary string to see the set bits
Console.WriteLine(Convert.ToString((int)TimPermissions, 2));

이는 서로 다른 비트 위치가 서로 다른 권한에 해당함을 보여주며, 하나의 정수에 여러 설정을 저장할 수 있는 방법을 보여줍니다.

OR 연산자를 사용하여 권한 추가하기

Tim은 를 사용하면 권한을 동적으로 추가할 수 있다고 설명합니다.|= 연산자:

// Add the BuildSystem permission to the existing permissions
TimPermissions |= SystemPermissions.BuildSystem;

// Print the updated permissions - it now includes SQL, Redis, and BuildSystem
Console.WriteLine(TimPermissions);

32비트 한계 이해하기

Tim은 중요한 고려 사항을 강조합니다. C#의 정수 데이터 형식은 32비트로 제한됩니다. 이는 우리가 int에 최대 32개의 고유한 플래그만 저장할 수 있음을 의미합니다. 만약 32개 이상의 플래그가 필요하다면, long (64비트) 또는 여러 값을 사용하는 것을 고려해야 합니다. 하지만 대부분의 경우 깃발 32개면 충분합니다.

플래그를 데이터베이스에 저장하기

플래그 열거형을 사용하는 가장 큰 장점 중 하나는 데이터베이스에 효율적으로 저장할 수 있다는 것입니다. 여러 개의 부울 열을 저장하는 대신 모든 권한을 나타내는 단일 정수 값을 저장할 수 있습니다. 팀은 이러한 접근 방식이 데이터베이스의 복잡성과 저장 공간 요구 사항을 크게 줄여준다고 설명합니다.

예를 들어, TimPermissions이(가) 37로 저장된 경우, 이는 다음의 조합을 나타냅니다:

  • SQL (비트 1)
  • 레디스(비트 3)
  • 빌드 시스템(비트 5)

데이터베이스에서 이 값을 가져오면 쉽게 디코딩하여 현재 활성화된 권한을 확인할 수 있습니다.

결론

팀은 플래그 열거형의 강력한 기능을 강조하며 마무리합니다. 이진 연산을 사용하면 단일 정수 내에서 여러 상태를 효율적으로 관리할 수 있습니다. 이 기술은 성능을 향상시키고, 데이터 저장을 간소화하며, 코드의 가독성을 높여줍니다.

이러한 접근 방식을 따르면 C# 플래그 열거형을 사용하여 깔끔하고 확장 가능한 권한 관리 시스템을 구현할 수 있습니다. 전체 비디오를 시청하여 자세히 알아보세요.

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

OR
bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.