C#中Ref参数使用之我见
2005-09-23 13:26
253 查看
市面上的书中有关REF参数的说明一般是这样的:
ref 在使用过程中会改变变量的值,且例子如下:
public static void ValueParam(string str)
{
str = "251";
}
public static void RefParam(ref string str)
{
str = "250";
}
public static void Main()
{
string str = "249";
ValueParam(str);
Console.WriteLine(" Value Param:"+str);
RefParam(ref str);
Console.WriteLine(" Ref Param:"+str);
}
结果为:
Value Param:249
Ref Param:250
但我在实践中发现: 数组参数在不用REF修饰下值也会改变的,看下面这个例子:
public void ChageValue(int[] arr)
{
for(int i =0;i<arr.Length;i++)
arr[i]=0;
}
public static void Main()
{
int [] aar = {3,4,5,7,2,6,1};
for(int i=0;i<aar.Length;i++)
Console.WriteLine(">>>"+aar[i].ToString());
ChageValue(aar); // 这里没有使用REF 参数.
for(int i=0;i<aar.Length;i++)
Console.WriteLine("<<<"+aar[i].ToString());
}
从结果中可以看出,数组本身已经改变了,因此不仅仅用REF的形式可以改变参数的值,而这种情况在一般书中都没有介绍,希望新的关于介绍C#的书将上面的情况加以说明。
谢谢。
ref 在使用过程中会改变变量的值,且例子如下:
public static void ValueParam(string str)
{
str = "251";
}
public static void RefParam(ref string str)
{
str = "250";
}
public static void Main()
{
string str = "249";
ValueParam(str);
Console.WriteLine(" Value Param:"+str);
RefParam(ref str);
Console.WriteLine(" Ref Param:"+str);
}
结果为:
Value Param:249
Ref Param:250
但我在实践中发现: 数组参数在不用REF修饰下值也会改变的,看下面这个例子:
public void ChageValue(int[] arr)
{
for(int i =0;i<arr.Length;i++)
arr[i]=0;
}
public static void Main()
{
int [] aar = {3,4,5,7,2,6,1};
for(int i=0;i<aar.Length;i++)
Console.WriteLine(">>>"+aar[i].ToString());
ChageValue(aar); // 这里没有使用REF 参数.
for(int i=0;i<aar.Length;i++)
Console.WriteLine("<<<"+aar[i].ToString());
}
从结果中可以看出,数组本身已经改变了,因此不仅仅用REF的形式可以改变参数的值,而这种情况在一般书中都没有介绍,希望新的关于介绍C#的书将上面的情况加以说明。
谢谢。
相关文章推荐
- C#Trick&Tip: 使用 ref 与 out 传递参数的区别
- C#中参数前缀ref、out的使用
- C#中ref和out参数使用时需要注意的问题
- C# 下ref和out 参数使用
- C# 中的四种参数的使用方法(一般参数,ref 参数,out参数,参数数列)
- C#中引用参数ref 、out的使用区别
- C#中Ref参数使用之我见
- C#之高级参数 ref,out,params的使用
- C#方法参数传递-同时使用ref和out关键字
- C# 下ref和out 参数使用
- c#中ref和out参数使用时需要注意的问题_百度文库
- c#中ref和out参数使用时需要注意的问题
- 在 C# 异步方法中使用 out/ref 参数机制
- C#中out、ref、params参数的使用
- C#方法参数传递-同时使用ref和out关键字
- C#中参数前缀ref、out的使用
- c# ref参数使用
- C# 下ref和out 参数使用
- C#.NET学习笔记---C#中方法参数的传递方式: 值类型(默认),ref类型,out类型和params类型
- C# 使用自定义线程类向线程传递参数