C#关于ref的用法(多个实参值的传递)
来源:互联网 发布:网络延长器品牌 编辑:程序博客网 时间:2024/06/03 19:38
按照C#默认的按值调用参数的传递机制,不能刻编写出一个方法来实现两个int类型的值交换,因为一个方法只能对应一个返回值,如何实现将两个交换的值传递回去,这里我将用到的是ref修饰符。
使用ref的单值传递(没有返回值,但是直接将实参的值做了修改,如果是两个int型做值交换,ref也将直接对其实参进行修改为值交换后的值)
ps:这里说的有些不对,但是大体思路是这个样子,看例子自己领悟吧。就是在方法中直接对原本传进来的值进行修改。不需要return
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace cxx{ class RefTest { public void sqr( ref int i) //注意ref实在所有参数类型的最前面 { i = i * i; } } class refDemo { static void Main() { RefTest ob = new RefTest(); int a = 10; Console.WriteLine("a before call:" + a); ob.sqr(ref a); //还是在最前面 Console.WriteLine("a after call:" +a); Console.WriteLine(@"my name is shonewornmy blog: www.cnblogs.com/shoneworn welcome to my blog !"); //对自己的博客做一下推广,同时也复习一下“@”的用法
Console.ReadKey(); } }}
常规单值传递(不适用ref):
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace cxx{ class RefTest { public int sqr( int i) { return i = i * i; //注意方法类型为int型,需要用到return来返回值 } } class refDemo { static void Main() { RefTest ob = new RefTest(); int a = 10; Console.WriteLine("a before call:" + a); int b = ob.sqr( a); //用b来接收值 Console.WriteLine("a after call:" + b); Console.WriteLine(@"my name is shonewornmy blog: www.cnblogs.com/shoneworn welcome to my blog !"); //对自己的博客做一下推广,同时也复习一下“@”的用法 Console.ReadKey(); } }}
0 0
- C#关于ref的用法(多个实参值的传递)
- C#关于ref,out,params的用法
- C# ref的用法
- c#中ref的用法
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习(一)
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习(一)
- C# 函数引用传递(址传递)ref、out以及值传递之间的运行效率问题
- C#形参,实参,值传递参数,引用传递参数,输出参数,参数数组的学习
- 函数参数的传递(复制实参的值)
- 形参与实参之间的值传递
- c# ref参数的用法 out参数
- c#中ref跟out的用法
- C#关键字params, ref, out的用法
- c#中ref和out的用法
- c#中ref和out的用法
- c#值传递和引用传递,以及ref和out关键字的区别
- 关于ref 和out 的用法---困惑
- 关于C++中实参形参的传递问题
- C#中decimal的用法
- C#中对输出格式的初始化
- C#中“@”的作用和用法
- 让人泪奔的方法:两个变量在不使用其他变量的情况下进行数据交换
- 普通用户如何获取超级管理员权限的步骤
- C#关于ref的用法(多个实参值的传递)
- C# 关于out关键字的用法(一个方法返回多个值的问题)
- C#关于params的用法(使用数量可变的参数)
- 贪心思想
- 8.0 三维地图
- WIN7 Net Configuration Assistant打不开
- Alter的用法(添加字段,删除字段,修改字段名)
- DNS,ARP,RARP,NAT,WINS的作用和区别
- url 的httppost 和http get ,put,delect