ref & out
来源:互联网 发布:ubuntu apache服务器 编辑:程序博客网 时间:2024/05/16 18:47
ref 和 out 都是引用传递的关键字,两者的意思都是差不多,都是按引用传递。
那么什么是引用?
class Program
{
public static void show(ref string a)
{
a = "测试";
}
static void Main(string[] args)
{
string num="1 ";
show(ref num);
Console.WriteLine(num);
}
}
这段代码输出结果是测试,
class Program
{
public static void show(string a)
{
a = "测试";
}
static void Main(string[] args)
{
string num="1 ";
show(num);
Console.WriteLine(num);
}
}
这段代码输出的结果却是1,对比我们发现如果被ref修饰方法对参数的修改将直接对方法外的参数产生影响,当我们调用被ref修饰的show方法时,其实我们传递的并不是一个数据,而且一个地址!,所以方法里面对参数的操作将会直接对这个内存地址进行操作,这就是引用传递.如果不加ref的show传递的就是数据,方法里面的参数相当于将传进来的数据复制了一份,进行操作,原有数据并没有被操作,那么out和ref 有什么区别了?
两者的区别个人认为是只能从语法上能看出区别,执行都是一样的引用传递。
ref 如果修饰一个方法 实参和形参必须都被修饰,ref在当实参用的时候必须初始化out却可以不用初始化
int i;
show(ref i);//编译不通过
show(out i);//编译通过
ref 传递进来的参数可以直接进行操作而out却不行
int i;
public void show(ref int i){int j=i;}//编译通过
public void show(out int i){int j=i;}编译不通过
ref传递的参数在内部可以不用去修改,但是out却必须在方法结束前赋值.
public void show(ref int i){}//编译通过
public void show(out int i){}编译不通过
- ref&out
- ref out
- ref out
- ref、out
- ref & out
- Ref && Out
- ref和out 转贴
- 关于ref和out
- 关键字out,关键字ref
- "ref" and "out"
- C# ref and out
- ref和out参数
- 关于ref和out
- 简介out与ref
- out And ref
- params,ref,out简介
- c# out ref 使用
- ref与out
- 111111111
- ubuntu查看java安装路径和设置环境变量
- DigitalOcean新加坡节点使用感受
- C++中的友元(一)
- wxWidgets学习笔记(二):使用wxFormBuilder、wxWidgets和Code::Blocks创建GUI程序
- ref & out
- solaris10 安装mysql并修改data存放位置
- 1111111111111
- Activity中configChanges属性的用法
- //堆上内存四大开辟函数 和栈上内存开辟函数:
- 技术人每个阶段应该做什么
- Infragistics.NetAdvantage.Ultimate.2011.Vol.1 key 注册码
- 柴俊理金:6、26午夜黄金,宁贵沥青操作策略
- 51单片机串口通信的发送与接收(转)