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

时间:2011-10-03 13:27:31

标签: c# .net generics value-type reference-type

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

想象:

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
    }
}

2 个答案:

答案 0 :(得分:16)

bool isValueType = typeof(T).IsValueType;

完成工作......如果任何值为null,则无关紧要,即使对于空数组也是如此。

答案 1 :(得分:0)

您的情况看起来像

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