public struct Person
{
    string Name;
    int  height;
    int  weight
    
    public bool overWeight()
    {
        //implement something
    }
}
结构中有string,怎么还说是值类型呢?

解决方案 »

  1.   

    说的是Person是值类型。
    将struct修改成class
      

  2.   

    复制错了代码,不仔细不严谨,我忏悔。。
    ---------------------------------
    http://www.cftea.com/c/2008/03/JHB3MJM8DYGS0JJ9.asp 在这个网页看到的:
    类与结构的差别值类型与引用类型结构结构是值类型,值类型在堆栈上分配地址,所有的基类型都是结构类型,例如:int 对应System.int32 结构,string 对应 system.string 结构 ,通过使用结构可以创建更多的值类型。
    ---------这个意思是说在结构中string会分配在堆栈中吗
      

  3.   

    system.string 结构 ? 开什么玩笑。虽然String在各方面的表现都十分接近或等同于值类型,但它仍然是如假包换的引用类型。在MSDN上,只有“String 类”而没有“String 结构”
      

  4.   

    是的,string引用会复制到栈中,但是指向的string本身还在堆中。