如何检查泛型方法参数是否为值类型?

本文关键字:是否 类型 参数 泛型方法 何检查 检查 | 更新日期: 2023-09-27 18:10:23

是否有方法检查变量是否为引用类型的值类型?

想象:

private object GetSomething<T>(params T[] values) 
{
    foreach (var value in values)
    {
        bool is ValueType; // Check if 'value' is a value type or reference type
    }
}

如何检查泛型方法参数是否为值类型?

bool isValueType = typeof(T).IsValueType;

工作……如果任何值都是null并不重要,它甚至可以用于空数组。

您的情况如下

var cond = false;
if(value != null) 
  cond = value.GetType().IsValueType