体验C#——聊聊方法的那些参数
2014-12-16 11:17
204 查看
一、代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ShowParams { class Program { //看看C#中方法的参数的区别 //1、值参数 会把内存中的某变量的值copy一份,然后再开辟新的内存空间进行保存 class ValueParams { public void Add(int i) { i++; } public void Test() { int i = 0; Add(i); Console.WriteLine(i); } } //2、引用参数 引用类型参数不会开辟新的内存空间,原地址不变,使用地址内的值,进行运算时,值会改变 class QuoteParams { //使用引用类型关键字 ref public void Add(ref int i) { i++; } public void Test() { int i = 0; Add(ref i); Console.WriteLine(i); } } //3、输出参数,关键字:out 可用于“返回多个值” class OutParams { //使用输出参数关键字out public void Add(out int i,out int j) { //使用输出参数必须对参数进行初始化 i = 0; j = 0; i++; j++; } public void Test() { //输出参数在传入方法前可以不进行初始化,其它参数必须进行初始化 int i; int j; Add(out i,out j); Console.WriteLine(i); Console.WriteLine(j); } } //数组参数 关键字:params 可在声明方法时参数个数不确定,且参数类型相同时使用 ,但在声明的方法里必须位于函数列表的最后 class ArraryParams { public void Add(params int[] arrI) { for (int i=0; i < arrI.Length; i++) { arrI[i]++; } } public void Test() { int[] arrI={1,2,3,4,5}; Add(arrI); for (int i = 0; i < arrI.Length; i++) { Console.WriteLine(arrI[i]); } } } static void Main(string[] args) { //值参数 ValueParams vP = new ValueParams(); vP.Test();//结果输出为0 //引用参数 QuoteParams qP = new QuoteParams(); qP.Test();//输出结果为1,i值发生了改变 //输出参数 OutParams oP = new OutParams(); oP.Test();//输出结果为1,1 i,j的值都发生了改变,可以起到函数返回多个值的作用 //数组参数 ArraryParams aP = new ArraryParams(); aP.Test(); Console.ReadKey(); } } }
相关文章推荐
- C# 4.0开发体验——方法参数默认值
- 【C#】解决那些参数不同的方法无法注册委托的情况
- C#中方法的参数有四种类型
- C#中params 关键字可以指定在参数数目可变处采用参数的方法参数
- C# 参考之方法参数关键字:params、ref及out - Hunts.C - 博客园
- C# 参考之方法参数关键字:params、ref及out
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- C#锐利体验 第六讲 方法
- 从 C# 传递可选方法参数
- 也有人和我一样抱怨为何C#中操作office产品的方法有那么多的参数
- C#的方法的参数修饰符详解
- C#中方法参数的四种类型_C#教程
- C#方法中的params参数类型
- C#: 方法的默认参数
- 用MSIL剥开C#的外衣(一):方法参数ref、out、params和lock、for和foreach关键字
- C#中的方法参数
- VBA调用C#对象方法,传递double数组参数
- C# 数据库sql中用参数的方法来执行UPDATE命令,实现更新dataTime类型
- C#锐利体验-第六讲 方法(转)
- C#中方法的参数有四种类型: