JUST DO IT ~

我只想当个程序员

c# 装箱转换 结构的拆装箱 问题





 

将在控制台上输出值10因为将p赋值给box是一个隐式装箱操作它将复制p的值。如果将 Point 声明为 class,由于 pbox 将引用同一个实例,因此输出值为 20




D:\c_\4.3.1 装箱转换>Test
Box contains an int-----------------------
10-----------------------
20-----------------------
-----------------------
20
-----------------------
20




struct Point
{
    
public int x, y;
    
public Point(int x, int y)
    
{
        
this.x = x;
        
this.y = y;
    }

}


class  Pint
{
    
public int x, y;
    
public Pint(int x, int y)
    
{
        
this.x = x;
        
this.y = y;
    }

}

class Test {

    
public static void Main() {

        
int i = 123;
        
object box = i;
        
if (box is int)
        
{
            Console.Write(
"Box contains an int");
        }


        Console.WriteLine(
"-----------------------");
        Point p 
= new Point(1010);
        
object box1 = p;
        p.x 
= 20;
        Console.Write(((Point)box1).x);

        Console.WriteLine(
"-----------------------");
     
        Console.Write((p).x);
        Console.WriteLine(
"-----------------------");
     

        Pint pi 
= new Pint(1010);
        
object box2 = pi;
        pi.x 
= 20;
        Console.WriteLine(
"-----------------------");
     
        Console.WriteLine(((Pint)box2).x);
        Console.WriteLine(
"-----------------------");
     
        Console.Write((pi).x);


    }


}

posted on 2008-02-12 11:37 小高 阅读(392) 评论(1)  编辑  收藏 所属分类: DotNet

评论

# re: c# 装箱转换 结构的拆装箱 问题 2008-08-09 18:46 小高

java equals ( Integer ) -125~126 缓存变量可能不通
  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

统计

常用链接

留言簿(3)

随笔分类(352)

收藏夹(19)

关注的blog

手册

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜