C#中参数的使用

来源:互联网 发布:网络关于蜂王蜂后寓意 编辑:程序博客网 时间:2024/05/20 18:51

C#有四种参数形式,即:

值参数:不使用任何关键字

引用参数:使用关键字ref

输出参数:使用关键字out

数组参数:使用关键字params


1、值参数

值参数的实际值不会被修改,在参数传递时,实际传递给形参的只是实参的一份拷贝,实参与形参的类型必须一致,至少形参到实参间存在一种隐式类型转换。

2、引用参数

如果需要将实参与形参的变化动态的保持一致,就需要使用引用类型,此时传递的是实参的地址,如果实参值发生变化,则形参也会相应发生变化。

引用类型参数使用关键字ref,但要注意,将变量作为引用类型参数传递前,必须先赋值。

例子:

namespace test_ref

{

    public class testref

    {

         public static int testrefpar(ref int first)

         {

               first=20;

               return 0;

          }

          public static void Main()

          {

               int i=10;

               System.Console.WriteLine("在未使用引用传递前i的值:{0}",i);

               int j=testrefpar(ref i);

               System.Console.WriteLine("使用引用传递时,成员方法的返回值:{0}",j);

               System.Console.WriteLine("使用引用传递时,i的值{0}",i);

          }

     }         

}

3、输出参数

输出参数通过关键字out来定义,这与引用参数有些类似,均不用另外开辟内存区域,不同之处就是在方法调用前,不需要对输出参数的实参进行初始化。输出参数适用于传递成员方法被调用后返回数据的情形。

下面是我写的一个例子:

namespace testout

{

     public class test_out

     {

          public static string test_out_par(out string backstring)

          {

                backstring="这是out成员方法被调用后返的变量值。";

                return "这是out成员方法的返回值";

           }

          public static void Main()

          {

              string z;//不用进行初始化

              System.Console.WriteLine(test_out_par(out z));//这里输出的是成员方法的返回值

              System.Console.WriteLine(z);

          }

      }

}

4、数组参数

需要的参数个数可变或不定时,要使用到数组参数,数组参数通过关键字params来定义,定义数组参数时要注意以下几点:

⑴数组参数必须是方法参数数列表中的最后一个参数。

⑵数组参数必须是一维数组。

⑶不可与ref和out关键字组合使用。

下面是一个例子:

namespace test_params

{

     public class testpar

     {

         public static int total(params int[] par)

         {

              int sum=0;

            System.Console.Write("要计算的数的个数:{0}个,分别是:",par.Length);

              foreach(int tmp in par)

              {

                   System.Console.Write("{0},",tmp);

                   sum+=tmp;

              }

              System.Console.WriteLine("\n合计:{0}\n",sum);

          return sum;

         }

         public static void Main()

         {

              int sum1,sum2,sum3,sum4;

              int[] num={12,4,56,78,34};

              sum1=total(2,5,6,7,22);

              sum2=total(9,38,37,2,3,5,6);

              sum3=total(1,2,3,4,5,6,7,8,9,10);

              sum4=total(num);

              System.Console.WriteLine("\n最终结果:\nsum1={0}\nsum2={1}\nsum3={2}\nsum4={3}",sum1,sum2,sum3,sum4);

         }

     }

}


原创粉丝点击