Type 검사를 사용하여 switch 문을 작업하고 있습니다. 다음 코드는 모든 유형에서 완벽하게 작동하지만 Nullable 유형을 사용하는 것이 문제입니다.DateTime의 GetType이 상수 값이 아닌 이유
switch (Type.GetTypeCode(propertyInfos.PropertyType))
{
// Type code doesn't have reference with int, long, etc.,
case TypeCode.DateTime:
// Do the work for DateTime
break;
case TypeCode.Int32 :
// Do the work for Int32
break;
case TypeCode.Int64:
// Do the work for long
break;
case TypeCode.DateTime? :
break;
default:
break;
}
나는 그 GetType
로 변경하고 DateTime.Today.GetType().ToString()
문자열로 우리에게 System.DateTime을 줄 것입니다 노력했다. 그러나 컴파일러를 사용할 때 유효하지 않은 오류가 발생합니다 (Constant string
). 주어진 시간 인스턴스에서 DateTime.Today.GetType()
은 언제나 우리에게 System.DateTime
을주었습니다. 왜 이것이 컴파일러에서 받아 들여지지 않습니까?
DateTime이 두 번 있습니다. 첫 번째 경우와 마지막 기본값이 아닌 경우는 둘 다 DateTime입니다. 메시지는 "switch 문에 레이블 값 '16'이있는 여러 사례가 있습니다. 투표를 종료합니다. – john