您的位置:首页 > 其它

参数(引用参数和值参数,ref,out关键字)

2009-02-03 12:55 260 查看
每个参数必须要有一个类型和一个名称。参数用“,”号隔开。调用时类型,个数,顺序必须要相同

简单示例:

static void alike(string mystring,double mydouble )
{
 ......
}

正确的调用:

alike("Hello",2.9)

错误的调用:

alike(2.9,"Hello")  alike(2.9)

注意必须要类型,个数,顺序相同

参数数组:

参数数组就是用个数不定的参数来调用函数。一个函数只能指定一个参数数组,用params关键字来定义,而且定义参数时,参数数组必须定义在最后一个。

简单的参数数组示例:

static void alike(string mystring,double mydouble ,params int[] arg)
{
 ......
}

参数数组的使用示例:

class Program
{
 static int sumvals(params int[] numbers)
 {
  int sum = 0;
  foreach(int number in numbers )
  {
   sum += number;
  }
  return sum;
 }
 static void Main(string[] args)
 {
  int sum = sumvals(1,5,6,8,6);//此时个数不固定,可以用多个数来调用
  Console.WriteLine("总和 = {0}",sum);
 }
}

引用参数和值参数

引用参数:函数中对变量的值的改变不改变调用函数中的变量值。

值参数:改变了调用函数中的变量值。

这个时候用到ref关键字(ref关键字必须要使用变量,并且要初始化。)

简单示例:

static void alite(int val)
{
 val *= 2;
 Console.WriteLine("val double = {0}",val);
}
调用的时候
int Number = 5
Console.WriteLine("Number = {0}",Number)//输出Number = 5
alite(Number)    //输出Number = 10
Console.WriteLine("Number = {0}",Number)//输出Number = 5
这个时候Number的值没有改变。如果用ref关键字:

static void alite(ref int val)
{
 val *= 2;
 Console.WriteLine("val double = {0}",val);
}
int Number = 5
Console.WriteLine("Number = {0}",Number)//输出Number = 5
alite(Number)    //输出Number = 10
Console.WriteLine("Number = {0}",Number)//输出Number = 10
这个时候Number的值发生了改变

注意:ref关键字必须要使用变量:const int Number = 5 这样定义是错误的。必须要初始化:int Number这样也是错误的。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  numbers string class