C#学习笔记------参数

一、形参

  形参是本地变量,它声明在方法的参数列表中,而不是方法体中。

二、实参

    当代码调用一个方法时,形参的值必须在方法的代码开始执行之前被初始化。

    1.用于初始化形参的表达式或变量称作实参。

    2.实参位于方法调用的参数列表中。

    3.每一个实参必须与对应形参的类型相匹配,或是编译器必须能够把实参隐士转换为那个类型。

  

     当方法被调用的时候,每个实参的值都被用于初始化相应的形参,方法体随后被执行。

三、值参数

     使用值参数,通过将实参的值复制到形参的方式把数据传递给方法。方法被调用时,系统做如下操作。

       1.在栈中为形参分配空间。

       2.将实参的值复制给形参。

     值参数的实参不一定是变量。它可以是任何能计算成相应数据类型的表达式。

    

      在把变量用作实参之前,变量必须被赋值(除非是输出参数)。对于引用类型,变量可以被设置为一个实际的引用或null。

   

          下图说明了实参和形参在方法执行的不同阶段时的值,它表明以下3点。

               1.在方法被调用前,用作实参的变量a2已经在栈里了。

               2.在方法开始时,系统在栈中为形参分配空间,并从实参复制值。

                   1)因为a1是引用类型的,所以引用被复制,结果参数和形参都引用堆中的同一个对象。

                   2)因为a2是值类型的,所以值被复制,产生了一个独立的数据项。

               3.在方法的结尾,f2和对象f1的字段都被加上了5。

                  1)方法执行后,形参从栈中弹出。

                  2)a2,值类型,它的值不受方法行为的影响。

                  3)a1,引用类型,但它的值被方法的行为改变了。

 

     

 

posted on 2018-02-23 13:25  _一级菜鸟  阅读(538)  评论(0编辑  收藏  举报