今天突然注意倒一个问题,可能有些简单,请大家帮我解答一下;
大家都知道这样传的是值的副本,例子如下:void Main()
{
int a = 0;
Add(a);}
void Add(int b)
{
b=b+1;
}运算出来的结果是a依然是0;但是:
void Main()
{
DropDownList dropExample;
Bind(dropExample);
}void Bind(DropDownList drop)
{
////数据绑定操作
}这样做了以后为什么数据会绑定上去了呢?我真是百思不得其解,请大家帮忙!!
大家都知道这样传的是值的副本,例子如下:void Main()
{
int a = 0;
Add(a);}
void Add(int b)
{
b=b+1;
}运算出来的结果是a依然是0;但是:
void Main()
{
DropDownList dropExample;
Bind(dropExample);
}void Bind(DropDownList drop)
{
////数据绑定操作
}这样做了以后为什么数据会绑定上去了呢?我真是百思不得其解,请大家帮忙!!
解决方案 »
- 关于GridView如何获取模板里的控件ID值。
- 先谢谢了!再说! 没遇到过的两个控件的用法
- VS.NET 2003中,c#语言怎样实现象ASP那样连接数据库判断用户是否存在。或者不同于ASP的实现方式那C#的是?
- 在sql server2000+aspnet中我怎么才能从数据库中得出随机数据呢?
- ================求:入门asp.net项目===============
- 我用asp.net做得网站,其中有一项功能是上传文件,在本机上没有问题,在部署的时候程序运行发生错误,我是将文件上传时保存在一个目录中
- string.format控制字符串长度?
- asp.net怎么实现数据库中同一表的两数相加
- 求助高手..高手..高高手:页面之间参数如何动态调用?
- JavaScript加法
- 请教(加急):如何列示出IIS某个虚拟目录下的所有目录及文件,以供用户选择文件,获取文件的相对链接地址??
- .net下的16位md5如何使用?
{
int a = 0;
Add(a);}
void Add(int b)
{
b=b+1;
}结果1
如果DropDownList那个方法里面是new = DropDownList(...);那操作肯定也影响不到外面来。值传递,是说传递的是堆栈里的那个东西,值类型堆栈里就是存的它本身,所以传过来的是此值的拷贝,而引用类型堆栈里的是一个指向堆的引用(相当于地址,指南),传过来也是一个地址的拷贝,所以函数内是一个函数外的地址的拷贝(即他们是两个指向同一地址的引用),如果函数内是通过此地址来改变堆里面的内容,当然外面也感觉得到。如果此地址重新指向一个其它地址,则就跟外面没关系了。
void Bind(DropDownList drop)
{
////数据绑定操作
}
相当于
void Bind(ref DropDownList drop)
{
////数据绑定操作
}