C#의 열거형 유형 제약 조건: 제한 사항 이해
C#에서 유형 제약 조건은 일반적으로 일반 매개 변수의 유형을 제한하는 데 사용됩니다. 그러나 한 가지 주목할 만한 예외는 제한할 수 없는 열거형입니다. 이로 인해 많은 개발자들이 이러한 제한의 이유에 대해 궁금해하게 되었습니다.
Enum 제약 조건 부족에 대한 추론
정확한 이유에 대해서는 논의가 있지만 몇 가지 요인으로 추정됩니다. 이 결정에 영향을 미쳤습니다:
제한 극복
직접 열거형 제약 조건이 없음에도 불구하고 다음을 통해 유사한 기능을 달성할 수 있는 해결 방법이 있습니다. 추상 기본 클래스 및 중첩 클래스:
public abstract class Enums<Temp> where Temp : class { public static TEnum Parse<TEnum>(string name) where TEnum : struct, Temp { return (TEnum)Enum.Parse(typeof(TEnum), name); } } public abstract class Enums : Enums<Enum> { } Enums.Parse<DateTimeKind>("Local")
이 접근 방식은 추상 기본 클래스를 정의합니다. (Enums
확장 메서드 제한
해결 방법을 사용하면 열거형 유형 검사가 가능하지만 확장을 만드는 데 사용할 수는 없습니다. 행동 양식. 이러한 제한은 확장 메소드가 클래스의 일반 유형 인수에 액세스할 수 없다는 사실에서 비롯됩니다.
위 내용은 C# Generics에서 Enum 유형 제약 조건을 사용할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!