如何将参数约束为内置类型

时间:2009-10-04 17:17:06

标签: c# .net

请参阅此帖子以获取代码示例:How to map Type with Nhibernate (and Fluent NHibernate)

如何约束参数 Type type (请参阅上面链接示例中的构造函数)?如果类型不是此列表的一部分,我想抛出异常:Built-In Types Table (C# Reference)

1 个答案:

答案 0 :(得分:4)

这应该有用。

switch (Type.GetTypeCode(type))
{
    case TypeCode.Boolean:
    case TypeCode.Byte:
    case TypeCode.Char:
    case TypeCode.DBNull:
    case TypeCode.DateTime:
    case TypeCode.Decimal:
    case TypeCode.Double:
    case TypeCode.Empty:
    case TypeCode.Int16:
    case TypeCode.Int32:
    case TypeCode.Int64:
    case TypeCode.SByte:
    case TypeCode.Single:
    case TypeCode.String:
    case TypeCode.UInt16:
    case TypeCode.UInt32:
    case TypeCode.UInt64:
        break;
    default:
        if (type.GetType() != typeof(object))
        {
            throw new ArgumentException("invalid type.", "type");
        }
        break;
}