【KK学习笔记】c# 参数修饰符 out ref params
2012-10-15 22:49
323 查看
out 修饰符
下面的例子中
static void Main(string[] args)
{
int res,x,y;
x = 10;
y = 10;
modifinersOut(out x, out y,out res);
Console.WriteLine("out x:{0} y:{1} res:{2}", x,y,res);
Console.ReadKey();
}
static void modifinersOut(out int x ,out int y ,out int res)
{
x = 11;
y = 11;
res = x + y;
}
输出结果:x:11 y:11 res:22
可以通过没有返回值的方式,直接给带有out修饰符的变量赋值。但是必须要在里面给他赋值,不然系统就会报错
如果将参数中x y前面的out去掉。在把x y的赋值语句给屏蔽掉,res则等于20。
ref修饰符
string s1 = "ok";
string s2 = "ko";
Console.WriteLine("调用前s1:{0},s2{1}", s1, s2);
modifinersRef(ref s1, ref s2);
Console.WriteLine("调用后s1:{0},s2{1}", s1, s2);
static void modifinersRef(ref string s1, ref string s2)
{
string temp = s1;
s1 = s2;
s2 = temp;
}
输出结果:
调用前s1:ok s2:ko
调用后s1:ko s2:ok
个人理解就是使用了ref参数后,例如 如果有多次交换动作时,我们可以不用返回参数,直接将需要变量给他之后直接调用就好了,就不需要在写返回值了,这样看来应该在变量的生命周期里面都是可以直接调用和修改变量的值的
params修饰符
params修饰符就是用于支持参数使用数组。
例如定义一个方法
static int avg(params int[] a)//算平局只
{
……//省略
}
调用时就可以直接这样写avg(1,2,3,4,5)
下面的例子中
static void Main(string[] args)
{
int res,x,y;
x = 10;
y = 10;
modifinersOut(out x, out y,out res);
Console.WriteLine("out x:{0} y:{1} res:{2}", x,y,res);
Console.ReadKey();
}
static void modifinersOut(out int x ,out int y ,out int res)
{
x = 11;
y = 11;
res = x + y;
}
输出结果:x:11 y:11 res:22
可以通过没有返回值的方式,直接给带有out修饰符的变量赋值。但是必须要在里面给他赋值,不然系统就会报错
如果将参数中x y前面的out去掉。在把x y的赋值语句给屏蔽掉,res则等于20。
ref修饰符
string s1 = "ok";
string s2 = "ko";
Console.WriteLine("调用前s1:{0},s2{1}", s1, s2);
modifinersRef(ref s1, ref s2);
Console.WriteLine("调用后s1:{0},s2{1}", s1, s2);
static void modifinersRef(ref string s1, ref string s2)
{
string temp = s1;
s1 = s2;
s2 = temp;
}
输出结果:
调用前s1:ok s2:ko
调用后s1:ko s2:ok
个人理解就是使用了ref参数后,例如 如果有多次交换动作时,我们可以不用返回参数,直接将需要变量给他之后直接调用就好了,就不需要在写返回值了,这样看来应该在变量的生命周期里面都是可以直接调用和修改变量的值的
params修饰符
params修饰符就是用于支持参数使用数组。
例如定义一个方法
static int avg(params int[] a)//算平局只
{
……//省略
}
调用时就可以直接这样写avg(1,2,3,4,5)
相关文章推荐
- C#.NET学习笔记---C#中方法参数的传递方式: 值类型(默认),ref类型,out类型和params类型
- C#回顾学习笔记十六:out、ref和params参数
- C#中的参数修饰符 ref,out ,params
- c#.net中参数修饰符ref,out ,params得区别
- c#.net中参数修饰符ref,out ,params
- c#.net中参数修饰符ref,out ,params
- c#.net中参数修饰符ref,out ,params的区别
- C#中参数修饰符ref和out以及params的区别
- c#.net中参数修饰符ref,out ,params得区别
- c#.net中参数修饰符ref,out ,params得区别
- c#.net中参数修饰符ref,out ,params得区别
- [学习笔记]C#中out与ref参数传递方式
- c#参数修饰符ref、out、params
- C#基础学习--方法参数的种类,值参数,引用参数(ref),输出参数(out),数组参数(params)
- c#.net中参数修饰符ref,out ,params得区别?
- c#.net中参数修饰符ref,out ,params得区别
- C# ref、out、params与值类型参数修饰符
- C#中参数修饰符ref和out以及params的区别
- C#中参数修饰符ref,out ,params的区别
- c#.net中参数修饰符ref,out ,params