CSDN博客

img tqg1023

C#中参数的使用

发表于2004/9/14 16:22:00  899人阅读

分类: 学习笔记 C#

C#中参数的使用

 

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来定义,定义数组参数时要注意以下几点:

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

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

⑶不可与refout关键字组合使用。

下面是一个例子:

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);

          }

      }

}
0 0

相关博文

我的热门文章

img
取 消
img