형식간에 암시 적 변환을 사용할 수 있는지 확인해야합니다. 내장 유형의 경우, 사용 가능한 유형 및 유형의 목록으로 사전을 작성할 수 있습니다. 그러나 사용자 지정 형식의 경우이 코드가 어떤 코드인지 검사 할 수 없으므로 불가능합니다. 이 작업을 수행 할 수있는 일반적인 방법이 있습니까?암시 적 변환을 유형간에 사용할 수 있는지 확인하는 방법은 무엇입니까?
감사합니다.
형식간에 암시 적 변환을 사용할 수 있는지 확인해야합니다. 내장 유형의 경우, 사용 가능한 유형 및 유형의 목록으로 사전을 작성할 수 있습니다. 그러나 사용자 지정 형식의 경우이 코드가 어떤 코드인지 검사 할 수 없으므로 불가능합니다. 이 작업을 수행 할 수있는 일반적인 방법이 있습니까?암시 적 변환을 유형간에 사용할 수 있는지 확인하는 방법은 무엇입니까?
감사합니다.
시도해보십시오. // 유래 : 사용자 정의 유형에 대한 암시 적 대화를위한 방법을 정의하는 경우
의foreach (MethodInfo mi in typeof(CustomType).GetMethods()) { if (mi.Name == "op_Implicit") { Console.WriteLine(mi.ReturnType.Name); } }
IsAssignableFrom
을 사용해 보셨습니까?
Type type = typeof(MyClass);
type.IsAssignableFrom(typeof(MyOtherClass));
암시 적 변환에는 작동하지 않는 것으로 보입니다. 첫 번째 답변 (http://stackoverflow.com/questions/2119441/check-if-types-are-castable-subclasses)도 참조하십시오. –
잘못된 것입니다! long은 short,'long x = new short();'에서 할당 가능하지만'typeof (long) .IsAssignableFrom (typeof (short))'는 False를 반환합니다! –
가능한 중복 [? 암시 적 또는 명시 적 캐스트가 존재하는지 확인하는 방법 (HTTP "op_Implicit"이름으로 그것을 발견 할 것이다 .com/questions/1815452/암시 적 또는 암시 적 캐스팅 존재 여부 확인) – nawfal