黑马程序员技术交流社区
标题:
关于引用赋值
[打印本页]
作者:
李紫仪
时间:
2012-2-25 23:33
标题:
关于引用赋值
哪些类型是引用赋值,怎么写段代码证明
作者:
陆亚
时间:
2012-2-25 23:42
引用是相对于值类型,值类型除了基本数据类型,还有struct,枚举, 其他的类等都是引用类型。
作者:
邱国
时间:
2012-2-25 23:58
本帖最后由 邱国 于 2012-2-26 00:19 编辑
举个例子:首先声明一个类
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
A a = new A();
Console.WriteLine( a.add()); //此时输出应为1
A b = a; //b指向a的一个引用,这就是引用赋值。
Console.WriteLine( b.add()); //此时输出为2;
Console.WriteLine( a.add());//输出为3;
}
}
class A{
private int i=0;
public int add()
{
return i = i+1;
}
}
复制代码
引用赋值就是同时指向一份数据,在内存中占同一份地方,
值类型的赋值是复制一份内存,占内存2个不同地方。。
对象的赋值是引用赋值,字符很特别,也是引用赋值,一般数据类型int 之类的,是值类型赋值
作者:
李紫仪
时间:
2012-2-26 00:00
陆亚 发表于 2012-2-25 23:42
引用是相对于值类型,值类型除了基本数据类型,还有struct,枚举, 其他的类等都是引用类型。 ...
效果是一样的把,string类型一旦声明就改变不了了
作者:
安超
时间:
2012-2-26 09:10
int a=10;
int b=a;
a=20;
Console.WriteLine(b);
复制代码
此时b的值仍为10,但a的值已变成20!
若a和b均为引用类型的话,a和b的值就都变成20了!
string类型,一旦修改则是先copy一份然后对这个copy进行修改操作,原来的仍不变
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2