int number = 'a';
는 사운드의 C# 문
인가주의 그러나 표현이typeof(int).IsAssignableFrom(typeof(char))
false를 돌려줍니다. 이것은 모순이 아닌가?
int number = 'a';
는 사운드의 C# 문
인가주의 그러나 표현이typeof(int).IsAssignableFrom(typeof(char))
false를 돌려줍니다. 이것은 모순이 아닌가?
모순이 아닙니까?
아니요. C#을 char
에서 int
에 암시 적 변환을 제공하지만, 당신이 Type.IsAssignableFrom
에 대한 문서를 보면이 반환 값 상태 : C와 현재 Type이 같은 유형을 나타내는 경우, 또는
사실은 현재 유형 인 경우 또는 현재 Type이 c가 구현하는 인터페이스이거나 c가 제네릭 형식 매개 변수이고 현재 Type이 c의 제약 조건 중 하나를 나타내거나 c가 값 형식을 나타내고 현재 Type이
Nullable<c>
을 나타냅니다. 조건이 true가 아닌 경우, 또는 c가 null의 경우는 false
해당 조건이 없으므로 false
을 반환합니다.
[유형 A가 암시 적으로 유형 B로 변환 될 수 있는지 확인하는 방법] (http://stackoverflow.com/questions/2224266/how-to- 타입에 대한 암시 적 변환 가능 유형 b) – Justin
감사합니다. 이 방법은 제안 된 이름보다 훨씬 복잡합니다. –
당신이 묻는 질문은 약간 다릅니다. C#의 할당 가능 집합 값은 일반적으로 CLR에 할당 할 수있는 유형 집합보다 더 허용 적입니다.
'a'는 컴파일러에 의해 int로 변환되므로 그렇지 않습니다. – Sinatr
'int'는'char'에서 할당 할 수 없습니다. 그런 식으로 완전히 다른 암시 적 변환이 있습니다. –