코드에서 충돌을 해결하려고합니다.Enum.IsDefined가 유효한 enum 값을 인식하지 못합니다.
가 여기에
public static VocabularyEnum Status(Status currentStatus)
{
if (Enum.IsDefined(typeof(VocabularyEnum), (VocabularyEnum)currentStatus))
return (VocabularyEnum)currentStatus;
else
throw new ArgumentOutOfRangeException("currentStatus");
}
Item49
가 자동 생성 어휘 사전 enum
이다 확인할 때 Enum.IsDefined
반환 "거짓"이 방법 :
[System.CodeDom.Compiler.GeneratedCodeAttribute("cxsc", "0.57.0.0")]
[System.SerializableAttribute()]
[System.Xml.Serialization.XmlTypeAttribute(TypeName="voc.Status",
Namespace="http://somenamespace/opennamespace")]
public enum VocabularyEnum
{
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("1")]
Item1,
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("2")]
Item2,
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("3")]
Item3,
<...>
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("49")]
Item49,
}
if (Enum.IsDefined(typeof(VocabularyEnum), (int)currentStatus))
그리고 여기 내 enum
입니다 :
public enum Status : byte
{
[Description("Description for item1")]
ReadableNameOne = 1,
[Description("Description for item2")]
ReadableNameTwo = 2,
[Description("Description for item3")]
ReadableNameThree = 3,
<...>
[Description("Description for item49")]
ReadableNameFourtyNine = 49
}
왜 그렇게하는지 혼란 스럽네요. 누구나 왜이 문제를 해결할 수 있는지 그리고 어떻게이 문제를 해결할 수 있는지 알고 있습니까?
그것은 무엇이라고 말합니까? 오류 메시지 란 무엇입니까? –
@ArsenMkrt "OPing"으로 OP 분명히 던져 예외를 의미합니다. – BartoszKP
디버거에서'(int) currentStatus == 49'와'(int) VocabularyEnum.Item49 == 49'을 확인할 수 있습니까? –