参数(引用参数和值参数,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这样也是错误的。
简单示例:
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这样也是错误的。
相关文章推荐
- C# 参考之方法参数关键字:params、ref及out 引用-http://www.cnblogs.com/hunts/archive/2007/01/13/619620.html
- C# 参考之方法参数关键字:params、ref及out 引用之csdn的好友 小常
- C# 参考之方法参数关键字:params、ref及out 引用
- 参数传递(续)之——用Ref和Out关键字的按引用传递,以及用Params关键字传参
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- c# 方法参数(传值,传引用,ref,out,params,可选参数,命名参数)
- C# 参考之方法参数关键字:params、ref及out
- C#中引用参数ref 、out的使用区别
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- 输出参数out和引用参数ref区别(代码解释说明)
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C# 参考之方法参数关键字:params、ref及out
- C#基础学习--方法参数的种类,值参数,引用参数(ref),输出参数(out),数组参数(params)
- C#中按引用传递与按值传递的区别,以及ref与out关键字的用法详解
- C#方法的参数关键字:ref、out、params