📜  C# 程序检查指定类型是否为原始数据类型(1)

📅  最后修改于: 2023-12-03 14:59:43.161000             🧑  作者: Mango

C#程序检查指定类型是否为原始数据类型

在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#程序检查指定类型是否为原始数据类型的介绍,希望能对大家有所帮助。