自-C#中的指针ref和out_第1页
自-C#中的指针ref和out_第2页
自-C#中的指针ref和out_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、若需要在两个窗体间实现参数的引用传递。那么可以设计一个label控件,然后将它设置为v i sib 1 e ,最后将此lab e l控件设置为public这样就可以将I a b el作为一个公用缓冲区,如此也就实现了引用传递的功能。当然如果是一个类方法间的引用传递可以使用ref和out也就实现了 C指针的作用C #参考之方法参数关键字:p a ram s、re f及o ut如果在为方法声明参数时未使用ref 或out,则该参数可以具有关联的值。可以在方法中更改该值,但当控制传递回调用过程时,不会保留更改的值。通过使用方法参数关键字,可以更改这种行为。par am sp a rams关键字可以指

2、定在参数数目可变处采用参数的方法参数。1. 在方法声明中的 par a ms关键字之后不允许任何其他参数,并且在方法声明中只允许一个pa r a m s关键字。示例:字面意思比较难懂,所以看示例很有用/ ke yw ords p arams.csus in g Syst em; cl ? as s A p p ?public s tatic voi d UsePar a ms( params obje c t li st )fo? ?r ( i nt i = 0; i <1 ist . Length; i + +)年?Co ns o le.Wr i teLi n e (lis t i )

3、; ? ? ?static void M ai n() ?/ / 一般做法是先构造一个对象数组,然后将此数组作为方法的参数object 门 ar r = n ew obje c t 3 100, 'a' , "keywords 11 ; UseP?a r a m s(arr);?1/而使用了 p a rams修饰方法参数后,我们可以直接使用一组对象作为参数/当然这组参数需要符合调用的方法对参数的要求Us eParams (100 , 'a' , " k eywo r ds"); Co? n sole . Rea d (); ?f L

4、refre f关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。1. 若要使用ref参数,则方法定义和调用方法都必须显式使用r e f关键字。2. 传递到re f参数的参数必须最先初始化。这与out不同,o ut 的参数在传递之前不需要显式初始化。3. 属性不是变量,因此不能作为ref参数传递。4. 尽管 r ef 和ou t在运行时的处理方式不同,但它们在编译时的处理方式是相同的。因此,如果一个方法采用 re f参数,而另一个方法采用 ou t参数,则无法重载这 两个方法。例如,从编译的角度来看, 以下代码中的两个方法是完全相同的。如

5、果尝试这么做,将导致不能编译该代码。5. 如果一个方法采用re f 或。ut 参数,而另一个方法不采用这两类参数,则可以进行重载。示例:按引用传递值类型是有用的,但是re f对于传递引用类型也是很有用的。这允许被调用的方法修改该引用所引用的对象,因为引用本身是按引用来传递的。o utr e f关键字类似。out关键字会导致参数通过引用来传递。这与与ref的不同之处:1. ref要求变量必须在传递之前进行初始化。2. 尽管作为o u t参数传递的变量不需要在传递之前进行初始化,但需要调用方法以便在方法返回之前赋值。示例:与r ef示例不同的地方只要将re f改为 out,然后变量i仅需要声明即可

6、。1. ref关键字使参数按引用传递。作用:当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用r ef参数,则方法定义和调用方法都必须显式使用re f关键字。传递到r e f参数的参数必须最先初始化。这与ou t 不同,out的参数在传递之前不需要显式初始化。2. 尽管ref和 out在运行时的处理方式不同,但它们在编译时的处理方式是相同的。因此,如果一个方法采用ref参数,而另一个方法采用o ut参数,则无法重载这两个方法。public void T e st( r e f in t v a 1) pu bl ic voi d Test (out int val) 如果一个方法采用re f或o ut 参数,而另一个方法不采用这两类参数,则可以进行重载。publ i c vo i d Te st ( r ef / o u t int val) publi c voidT e st (int val) 3. out 关键字会导致参数通过引用来传递。这与r e f关键字类似,不同之处在于 ref要求变量必须在传递之前进行初始化。若要使用o ut参数,方法定义和调用方法都必须显式使用o ut关键字。4. 当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论