文档详情

06第三章c#语言基础.ppt

发布:2017-05-03约9.11千字共38页下载文档
文本预览下载声明
第3章 C#语言基础 ;3.5 类和结构 ; 方法参数的功效就是能使信息在方法中传入或传出,当声明一个方法时,包含的参数说明是形式参数(形参)。当调用一个方法时,给出的对应实际参量是实在参数(实参),传入或传出就是在实参与形参之间发生的,在C#中实参与形参有四种传递方式。 ① 值参数 ② 引用参数 ③ 输出参数 ④ 参数数组;   ① 值参数   在方法声明时不加修饰的形参就是值参数,它表明实参与形参之间按值传递。当这个方法被调用时,编译器为值参数分配存储单元,然后将对应的实参的值拷贝到形参中。实参可以是变量、常量、表达式,但要求其值的类型必须与形参声明的类型相同或者能够被隐式的转化为这种类型。这种传递方式的好处是在方法中对形参的修改不影响外部的实参,也就是说数据只能传入方法而不能从方法传出,所以值参数有时也被称为入参数。;  ① 值参数  【例】下面的程序演示了当方法Sort传递的是值参数。   using System;   class Myclass    {     public void Sort (int x, int y, int z)  { int tmp; // 将x, y, z按从小到大排序 if (xy) { tmp=x; x=y; y=tmp; } if (xz) { tmp=x; x=z; z=tmp; } if (yz) { tmp=y; y=z; z=tmp; }  }   } ;  ① 值参数  【例】下面的程序演示了当方法Sort传递的是值参数。   class Test   {   static void Main()   { Myclass m = new Myclass ( ); int a, b, c; a=30; b=20; c=10; m.Sort (a, b, c); Console.WriteLine (a={0}, b={1}, c={2} , a, b, c ); Console.Read ();    }   }; ② 引用参数 引用参数与值参数不同,引用参数并不创建新的存储单元,它与方法调用中的实在参数变量同处一个存储单元。因此,在方法内对形参的修改就是对外部实参变量的修改。; ② 引用参数 【例】下面的程序演示了当方法Sort传递的是引用参数。   using System;   class Myclass    {     public void Sort (ref int x, ref int y, ref int z)  { int tmp; // 将x, y, z按从小到大排序 if (xy) { tmp=x; x=y; y=tmp; } if (xz) { tmp=x; x=z; z=tmp; } if (yz) { tmp=y; y=z; z=tmp; }  }   } ; ② 引用参数 【例】下面的程序演示了当方法Sort传递的是引用值参数   class Test   {   static void Main()   { Myclass m = new Myclass ( ); int a, b, c; a=30; b=20; c=10; m.Sort (ref a, ref b, ref c); Console.WriteLine (a={0}, b={1}, c={2} , a, b, c ); Console.Read ();    }   }; ② 引用参数 使用ref参数的注意点: (1) ref关键字仅对跟在它后面的参数有效,而不能应用于整个参数表。例如Sort方法中x、 y、z都要加ref修饰。 (2) 在调用方法时,也用ref修饰实参变量,因为是引用参数,所以要求实参与形参的数据类型必须完全匹配,而且实参必须是变量,不能是常量或表达式。 (3) 在方法外,ref参数必须在调用之前明确赋值,在方法内,ref参数被视为初始值已赋过。; ③ 输出参数 在参数前加out修饰符的被称为输出参数,它与ref参数很相似,只有一点除外,就是它只能用于从方法中传出值,而不能
显示全部
相似文档