【发布时间】:2017-11-29 04:39:35
【问题描述】:
我正在处理带有类型检查的 switch 语句。以下代码适用于所有类型,但挑战在于 Nullable 类型。
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' 的多个案例”。投票结束。
标签: c# oop c#-4.0 switch-statement c#-3.0