📅  最后修改于: 2023-12-03 14:59:43.161000             🧑  作者: Mango
在C#中,可以使用以下方法检查指定的类型是否为原始数据类型:
public static bool IsPrimitiveType(Type type)
{
return type.IsPrimitive || type == typeof(string) || type == typeof(decimal) || (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>) && IsPrimitiveType(Nullable.GetUnderlyingType(type)));
}
代码说明:
type.IsPrimitive
用于判断类型是否为原始数据类型type == typeof(string)
用于特判string类型type == typeof(decimal)
用于特判decimal类型type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>) && IsPrimitiveType(Nullable.GetUnderlyingType(type))
用于判断类型是否为可空类型,并递归调用IsPrimitiveType方法判断可空类型的基础类型是否为原始数据类型。使用示例:
var intType = typeof(int);
var stringType = typeof(string);
var nullableIntType = typeof(int?);
var nullableStringType = typeof(string?);
Console.WriteLine(IsPrimitiveType(intType)); // true
Console.WriteLine(IsPrimitiveType(stringType)); // false
Console.WriteLine(IsPrimitiveType(nullableIntType)); // true
Console.WriteLine(IsPrimitiveType(nullableStringType)); // false
返回的结果如下:
True
False
True
False
以上是C#程序检查指定类型是否为原始数据类型的介绍,希望能对大家有所帮助。