[System.Flags]는 C#(.NET 프레임워크의 일부)에서 열거형(enum)을 플래그(flag)의 모음으로 처리해야 함을 나타내는 속성입니다. 이를 통해 비트 연산을 사용하여 enum 값을 결합할 수 있으며, 이는 코드에서 옵션 또는 상태 조합을 효율적으로 나타내는 데 도움이 됩니다.
[System.Flags]의 주요 사용 사례는 다양한 방식으로 결합될 수 있는 독립적인 옵션 또는 속성 집합이 있을 때입니다. 플래그 속성을 사용하면 단일 정수 값으로 이러한 옵션의 모든 조합을 나타낼 수 있습니다.
다음은 이 개념을 설명하는 예입니다:
[System.Flags]를 사용하지 않는 경우:
public enum Colors { Red, Green, Blue }
이 경우 변수에 한 번에 하나의 색상만 할당할 수 있습니다.
[System.Flags]를 사용하는 경우:
[System.Flags] public enum Colors { None = 0, Red = 1, Green = 2, Blue = 4 }
이제 비트 OR 연산을 사용하여 색상을 결합할 수 있습니다:
Colors combinedColors = Colors.Red | Colors.Green;
combinedColors는 이제 Red와 Green 플래그를 모두 가지게 됩니다. 비트 AND 연산을 사용하여 특정 플래그가 설정되어 있는지 확인할 수도 있습니다:
bool isRedSet = (combinedColors & Colors.Red) == Colors.Red;
이를 통해 단일 정수 값으로 여러 옵션, 상태 또는 속성을 효율적으로 저장하고 조작할 수 있습니다. 그러나 플래그를 결합할 때 비트가 겹치지 않도록 열거 값으로 2의 거듭제곱(2^n)을 할당하는 것이 중요합니다.
'Unity' 카테고리의 다른 글
[Unity] 구글 스프레드시트를 실시간 변경 테이블로 사용 (0) | 2023.07.14 |
---|---|
VSCode를 Unity에 연결 (0) | 2023.05.08 |
[Unity] Text Mesh Pro 한국어 폰트 등록 (0) | 2023.04.21 |
[Unity] Text Mesh Pro 일본어 폰트 등록 (0) | 2023.04.09 |
[Unity] Mac에서 VSCode의 OmniSharp 문제 (0) | 2023.04.04 |