C# 프로그래밍에서는 열거형 일반 제약 조건이 부족하여 플래그 열거형에 대한 특정 작업을 수행하려고 할 때 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해 UnconstrainedMelody 라이브러리를 사용하여 해결 방법을 살펴보겠습니다.
UnconstrainedMelody는 "의사" 일반 제약 조건을 "실제" 제약 조건으로 변환합니다. 예를 들면 다음과 같습니다.
<code>where T : struct, IEnumConstraint</code>
다음으로 변환:
<code>where T : struct, System.Enum</code>
이를 통해 개발자는 다음과 같은 메서드를 정의할 수 있습니다.
<code>public static bool IsSet<T>(this T input, T matchTo) where T : System.Enum { return (input & matchTo) != 0; }</code>
이 방법을 사용하면 다음을 수행할 수 있습니다.
<code>MyEnum tester = MyEnum.FlagA | MyEnum.FlagB; if (tester.IsSet(MyEnum.FlagA)) // 对标志 a 执行操作</code>
UnconstrainedMelody는 빌드 후 단계가 완료된 후 원활하게 통합됩니다.
그러나 여러 플래그가 지정된 경우 'IsSet' 메서드의 동작을 고려하세요.
<code>tester.IsSet(MyFlags.A | MyFlags.C);</code>
모든 플래그가 설정되었는지 확인해야 하나요, 아니면 하나만 설정해야 하나요? 권장되는 동작은 모든 플래그를 확인하는 것입니다.
UnconstrainedMelody는 이 방법에 대해 여러 가지 이름 지정 옵션을 제공합니다.
'IsSet'이라는 이름은 괜찮지만 피드백을 환영합니다. 이 해결 방법은 변경될 수 있으며 UnconstrainedMelody는 패치 또는 직접 제출을 환영합니다.
위 내용은 C#에서 Enum 일반 제약 조건이 없는 문제를 어떻게 해결할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!