如何判断一个对象是struct或class
public void GetObjectValue(object obj)
{
  if(obj is struct)   
  {
     ...
  }
  else if (obj is class)
  {
     ...
  }
}
请问用什么方式可以实现这样的判断,谢谢!

解决方案 »

  1.   


    判斷是否類            obj.GetType().IsClass
    判斷是否struct        obj.GetType().IsValueType
      

  2.   

    楼上的,如果我传入的obj=12,整型的,也是IsValueType=true,有办法区别吗?
      

  3.   

    準確的說,int也是struct,不過還是可以區別的,因為可以通過IsPrimitive來判斷是否基元類型
    [/code]
                System.Type type=obj.GetType();
                if (type.IsValueType && !type.IsEnum && !type.IsPrimitive)
                { 
                    //是LZ所述的stuct
                }
                else
                {
                    //不是
                }
    [code=C#]
      

  4.   


                System.Type type=obj.GetType();
                if (type.IsValueType && !type.IsEnum && !type.IsPrimitive)
                { 
                  //是LZ所述的stuct 
                }
                else
                {
                  //不是
                }
      

  5.   

    判斷是否struct       用          obj.GetType().IsValueType 方法得到的是所有值类型的东东,至少因去除obj.GetType().IsEnum吧