举个例子。
假设a=b为值传递,改变a的值,b不会改变。
如果为引用传递,则a是b的镜象,改变a,也会改变b
假设a=b为值传递,改变a的值,b不会改变。
如果为引用传递,则a是b的镜象,改变a,也会改变b
解决方案 »
- 高分放送--急求asp.net cookie 中文乱码问题
- asp.net中怎样实现不同登录用户在页面能显示自己的信息
- 请教一个常规代码格式的字符串,如何转换成实际代码,并返回结果?
- 如何将DataTable 过滤后返回另一个DataTable
- 能不能算出英文字母后几位是什么?
- 一个新闻评论的显示问题,请大家帮帮忙~~~
- winform如何实现文件下载\上传时的滚动条
- ASP。NET网站的发布问题?请各路高手赐教!
- 删除不了记录:(帮帮我吧
- 公司要做一个新闻采集系统,求源代码或下载地址
- 问各位一件事情,在网上对于ASP。NET的呼声很大,但我看了一段时间,好象很难一样
- asp.net与dreamweaver
using System;namespace LostinetSample
{
public class PointClass
{
public int x;
public int y;
}
public struct PointStruct
{
public int x;
public int y;
} class Class1
{
[STAThread]
static void Main(string[] args)
{
PointClass pc=new PointClass();
pc.x=10;
pc.y=10;
Change(pc); //传递引用,其引用的操作能反映过来:
Console.WriteLine("pc.x"+pc.x);
Console.WriteLine("pc.y"+pc.y);
PointStruct ps=new PointStruct();
ps.x=10;
ps.y=10;
Change(ps); //传递副本,其副本的操作不影响原来的对象
Console.WriteLine("ps.x"+ps.x);
Console.WriteLine("ps.y"+ps.y);
}
static void Change(PointClass o)
{
o.x=100;
o.y=100;
}
static void Change(PointStruct o)
{
o.x=100;
o.y=100;
}
}
}
for example: ref a=b;
这就表示值引用。
但c#里面凡是对象间的拷贝都使基于引用方式的。
上面我已经讲过两者的区别了,相信你应该明白了。