>백엔드 개발 >C++ >C# [플래그] 열거 속성은 어떻게 비트 동작 및 열거 가독성을 향상 시키는가?

C# [플래그] 열거 속성은 어떻게 비트 동작 및 열거 가독성을 향상 시키는가?

Barbara Streisand
Barbara Streisand원래의
2025-02-02 14:56:10428검색

[ c#: 그 역할을 이해하는 [flags] 열거 된 속성 C#에서 열거를 정의 할 때 열거가 단일 값이 아닌 값 세트를 나타내는 경우 [Flags] 속성을 사용할 수 있습니다. 이 속성은 특히 사용 연산자의 열거에 유용합니다.

[플래그] 속성의 중요성

보편적 오해와 달리, [Flags] 속성은 메소드를 통해보다 읽기 쉬운 표현 형식을 제공합니다. [플래그]로 표시된 열거는 그 값을 출력하고 값은 아래와 같이 쉼표로 표시됩니다

2

의 전력 값 [플래그] 속성이 2의 전력 값을 열거에 자동으로 할당하지 않는다는 점을 강조해야합니다. 값의 값이 건너 뜁니다. 기본값이 0에서 증가하기 때문에 위치에서의 작업 보유가 잘못되었습니다.

올바른 진술 :

다른 값을 얻으십시오 : 열거 속성에서 다른 값을 검색하려면 여러 메소드를 사용할 수 있습니다.

> 사용 <.> .ToString()

<code class="language-csharp">enum Suits { Spades = 1, Clubs = 2, Diamonds = 4, Hearts = 8 }
[Flags] enum SuitsFlags { Spades = 1, Clubs = 2, Diamonds = 4, Hearts = 8 }

...

var str1 = (Suits.Spades | Suits.Diamonds).ToString(); // "5"
var str2 = (SuitsFlags.Spades | SuitsFlags.Diamonds).ToString(); // "Spades, Diamonds"</code>
포지션 연산자 (.NET 4 이전) : 를 사용하십시오

기본 메커니즘

[FLAGS] 속성은 비트 컴퓨팅으로 작동하여 이진 값을 작동시킬 수 있습니다. 전력 값을 열거 값으로 사용함으로써 값의 기본 바이너리는 효율적이고 의미있는 계산을 허용한다는 것을 의미합니다.

예를 들어, 허용 된 속성이 비트에 따라 이진을 사용하거나 | |

none = 0 value 일부 열거에는 0 값 (일반적으로 "없음")이 포함되어 있습니다. 그러나 None 값과 관련된 위치 및 작업은 항상 0을 반환하므로 특정 부호를 테스트하는 데 적합하지 않습니다. 논리적 비교를 사용할 수 있습니다.

[Flags] 속성, 사용 및 설계 모드에 대한 자세한 정보 및 리소스는 MSDN 문서를 참조하십시오.
<code class="language-csharp">[Flags]
public enum MyColors
{
    Yellow = 1,
    Green = 2,
    Red = 4,
    Blue = 8
}</code>

위 내용은 C# [플래그] 열거 속성은 어떻게 비트 동작 및 열거 가독성을 향상 시키는가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.