C#中ref关键字如何理解和使用? C#中ref关键字如何理解和使用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看这个 REF关键字 结合OUT关键字一起看,OUT是不需要初始化的,REF需要初始化后传递,类似指针,所有更改都会反馈回来。 ref传递值,申请内存空间,将值传到指定的内存空间里面 类似 C++ 里的按别名传 & 简单的说就是 在参数前面加ref的话 那么传递的就是一个地址而不是一个实际的值 functionA(int a, out int b)//在代码中对 a 进行修改,不会对原数据造成影响{}functionB(ref int a, out int b)//在代码中对 a 进行修改,会对原数据造成影响。{}不使用ref 相当于传值,使用 REF 相当于传址 ref是传递参数的地址,out是返回值使用ref前必须对变量赋值当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字class Example{ static void Method(ref int i) { i = i; } static void Main() { int val = 0; Method(ref val); }} C++里面的引用传递,传地址。要和out一起看比较好感觉。一般函数传递时值传递,这样会造成函数中的生成一个临时对象(无形中增加了开销)。若是ref或out传递呢,则传递的是地址,就没有这个开销了。所以大的对象做形参传递时最好是用引用 都是引用传递,out不需要初始化,ref需要初始化参数 感谢 9楼 我也一直在考虑这个问题。 以后程序传参数时有可能都用 ref 传递地址就好了,省区很多开销 SqlDependency 一段时间后不监听数据库了 C#做的Activex本地局域网测试通过只差最后一步求救 timer控件的疑问? HTML里面的Select标签设置默认值 讨论一下三个timer类的区别 最大能上传多大文件到csdn 里 C# WINFORM多次调用同一个窗体 我安装了vs2005中文版,如何把中文变成英文的? 有一个sql server 语句,请兄弟们帮帮忙.... -------------有谁了解信用卡线上付款的原理.给出思路就可以了---------- 替换 String\string 中的 "\" DataGridView垂直滚动条
{
}
functionB(ref int a, out int b)//在代码中对 a 进行修改,会对原数据造成影响。
{
}
不使用ref 相当于传值,使用 REF 相当于传址
使用ref前必须对变量赋值
当控制权传递回调用方法时,在方法中对参数的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字
class Example
{
static void Method(ref int i)
{
i = i;
}
static void Main()
{
int val = 0;
Method(ref val);
}
}
要和out一起看比较好感觉。
一般函数传递时值传递,这样会造成函数中的生成一个临时对象(无形中增加了开销)。
若是ref或out传递呢,则传递的是地址,就没有这个开销了。
所以大的对象做形参传递时最好是用引用