두 개의 열거 자 및 열거자를 사용하는 메소드가 있습니다. 그것들은 ABC와 DEF라고 불리고 메소드는 TestMethod (Enum myEnum)라고 불린다. 코드는 다음과 같습니다.Enum의 유형 결정
public enum ABC
{
Zero,
One,
Two
};
public enum DEF
{
Zero,
One,
Two
};
public void TestEnum(Enum myEnum)
{
...
}
함수 TestEnum은 모든 열거자를 취합니다. 전달 된 매개 변수 중 두 매개 변수 중 어느 매개 변수가 속해 있는지 테스트하려면 어떻게해야합니까? 나는 맹목적으로 try/catch 캐스팅으로 테스트를 시작할 수 있지만 엉망이된다. 이것을하는 더 청결한 방법? 사전에 도움을 주셔서 감사합니다.
존 크리 스 존, 나는 12 분 동안 대답조차 받아 들일 수 없다. 내가 이것을 게시하기 전에 내 마음을 읽고 쓴거야? Lol. 가능한 한 빨리 체크 표시를하고, 번개처럼 빠른 응답을 주심을 감사드립니다. 그리고 그런 멍청한 질문에 대한 애도를 말하십시오. < – Lukas
@ 루카스 당신은 또한 당신의 방법을 일반적인 것으로 만들 수 있습니다. 이것은 이렇게됩니다 :'public void TestEnum (TEnum myEnum) 여기서 TEnum : struct {/ * method body here * /}'. 이것은 권투를 피할 수 있습니다. 예를 들어'typeof (TEnum) '을 사용하여 타입을 얻을 수 있습니다. 이 문제는 C# 언어가 타입 매개 변수 'TEnum'을 열거 형으로 제한 할 수 없다는 것입니다. –
@JeppeStigNielsen : 그 옵션을 추가하겠습니다. (나는 방법 서명이 고정되었다고 가정 했었습니다.) 제 제한되지 않은 멜로디 라이브러리를보고 싶을 수도 있습니다 :) https://code.google.com/p/unconstrained-melody/ –