类型求解,问提在代码注释中
<%@ 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都指向不同的位置。