文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>浅谈“值类型”和“引用类型”

浅谈“值类型”和“引用类型”

时间:2010-10-15  来源:Rainless

 从概念上区分,值类型直接存储其值,引用类型存储对值的饮用。按照存储位置上的不同,值类型存储在堆栈中,引用类型存储在托管堆上。

 下面用一个简单实例来说明两者的区别:

 

代码
            //i ,j 都是值类型
int i, j;
i
= 10;
j
= i;
Console.WriteLine(
"i=" + i);
j
= 20;
Console.Write(
"i=" + i);
Console.ReadLine();
//结果
//i = 10;
//i=10

注:值类型的变量直接包含值,将一个值类型变量赋给另外一个值类型变量时,将复制包含的值。所以本实例中两个变量在内存的两个地方存储。

代码
            Rainless RLA, RLB;
RLA
= new Rainless();
RLA.str
= "改变前";
RLB
= RLA;
Console.WriteLine(RLA.str);
RLB.str
= "改变后";
Console.WriteLine(RLA.str);
Console.ReadLine();
//输出结果
//改变前
//改变后
注:和上面例子比较,同是把一个变量赋值给另外一个变量,可两者之间的区别就大了。Rainless是一个类,类属于引用类型。引用类型的赋值只复制对象的引用,而不对象本身,所以RLA和 RLB只是保留了一个引用,只是引用了同一个对象,因此对RLB的修改会影响RLA。

下面说一下值类型和引用类型的组成部分。

值类型主要有两类组成:

  •  结构
  • 枚举

结构分为下面几类:

  • Number(数值)类型
  • Bool
  • 用户自定义的结构

  其中数值类型又包括整数、浮点数、decimal。

先写到这里,接下来讲述的是out和ref的区别。。



相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载