struct Point
        {
            public int x,y;
           public Point(int x, int y)
            {
                this.x =x;
                this.y=y;
            }
        }    public void TestBox()
    {
        Point P = new Point(10, 10);
     Response.Write("P.x=" + P.x  + ",P.y=" + P.y );
   object O=P;
    P.x=20;
    O.y= 201;
    Response.Write("P.x=" + P.x + ",P.y=" + P.y);
    Response.Write("O.x=" + O.x + ",O.y=" + O.y);
    Response.End();这里的object O=P后 为什么提示O.y=201;出错了,“object”并不包含“y”的定义

解决方案 »

  1.   

    O是object类型,当然点不出东西了
      

  2.   

     Point是结构体,结构体是值类型,如果是类的实例,就不是副本了
      

  3.   

    那object O=P; 这样定义O有什么用
      

  4.   

    Point O=P;不就行了,搞的晕晕的,什么装箱操作
      

  5.   

    Point O = P;你想掉Point里的东西,就用Point O,而不是Object O;就像你想让你儿子和你的DNA相符,那必须是你生的才行(Point O),你要人家Object的孩子非要验出你的DNA,这肯定是不行的。
      

  6.   

     object 和你定义的Point结构体不是同一种数据类型
      

  7.   

    你要是真想用的话,请用((Point)O).Y吧,这是需要类型转换的,object是没有Y属性的,当然不能够用了