日期:2014-05-18  浏览次数:20424 次

类型求解,问提在代码注释中
<%@   Import   Namespace=System   %>
<%@   Import   Namespace=System.Data   %>
<%@   Import   Namespace=System.Collections   %>

<html>
<head>
<script   language= "cs "   runat= "server ">

private   void   Page_Load(object   sender,   System.EventArgs   e)
{

Response.Write( "-----引用示例----- ");
Response.Write( " <br/> ");
int   i=100;
Object   o=i;
Response.Write( "i的数据类型是: "+i.GetType());
Response.Write( " <br/> ");
Response.Write( "o的数据类型是: "+o.GetType());//类型为什么不是object?而还是Int32?
Response.Write( " <br/> ");

//分别另i1=i,o1=0
int   i1=i;
Object   o1=o;
Response.Write( "令i1=i,o1=o "+ " <br> ");
Response.Write( "改变原始值前:i1= "+i+ " <br> ");
Response.Write( "改变原始值前:o1= "+o+ " <br> ");

//另i=200,o=200
Response.Write( "令i=200,o=200 "+ " <br> ");
i=200;o=200;
Response.Write( "改变原始值后:i1= "+i1+ " <br> ");
Response.Write( "改变原始值后:o1= "+o1);//为什么这里还是100?我认为这里o1是对对象的引用所以当原对象改变时,o1也应改变


}

</script>
</head>

</html>


------解决方案--------------------
//类型为什么不是object?而还是Int32?
GetType得到的是实际类型

装箱后,得到一个新的引用类型,与原来的值类型没有关系
改变这个的值,当然不影响原来的~
------解决方案--------------------
o=i;//对i进行装箱了,所以自然就是object类型


object是引用类型

另外对于值类型和引用类型,建议你参考下:《.net框架程序设计 修订版》张建忠翻译的
里边有详细的解释。.net深入学习非常好的资料。


如果我的回答能帮助你的话,请帮我点一下:http://www.vzhangmen.com增加个IP
------解决方案--------------------
不管是Animal或者int,最终o1和o都指向不同的位置。