C#.NET中的引用参数(带关键字ref)和值参数
/*
* Created by SharpDevelop.
* User: noo
* Date: 2009-8-16
* Time: 13:24
*
* 引用参数(带关键字ref)和值参数
*/
using System ;
class A
{
public static void showDouble(int val)
{
val *=2;
Console.WriteLine ("该数的两倍为:{0}",val);
}
}
class B
{
public static void showDouble(ref int val)//注意这里的写法为带有关键字ref,表明该参数为引用参数
{
val *=2;
Console.WriteLine ("该数的两倍为:{0}",val);
}
}
class Test
{
static void Main()
{
Console.WriteLine ("以下是值参数的实现方式");
int start=5;
Console.WriteLine ("原始值为:{0}",start);//5
A.showDouble (start);//10
Console.WriteLine ("处理后值为:{0}",start);//5
int begin=5;
Console.WriteLine ("以下是引用参数的实现方式");
Console.WriteLine ("原始值为:{0}",begin);//5
B.showDouble (ref begin);//注意这里的调用方式也要加上ref,10
Console.WriteLine ("处理后值为:{0}",begin);//10,这里与值引用得出的结果不一样,这里其实已经改变了参数的值
//因为变量的值可能会发生变化,所以调用中必须使用变量,而不能是常量,如上面的begin不能定义为const int begin=5
}
}
* Created by SharpDevelop.
* User: noo
* Date: 2009-8-16
* Time: 13:24
*
* 引用参数(带关键字ref)和值参数
*/
using System ;
class A
{
public static void showDouble(int val)
{
val *=2;
Console.WriteLine ("该数的两倍为:{0}",val);
}
}
class B
{
public static void showDouble(ref int val)//注意这里的写法为带有关键字ref,表明该参数为引用参数
{
val *=2;
Console.WriteLine ("该数的两倍为:{0}",val);
}
}
class Test
{
static void Main()
{
Console.WriteLine ("以下是值参数的实现方式");
int start=5;
Console.WriteLine ("原始值为:{0}",start);//5
A.showDouble (start);//10
Console.WriteLine ("处理后值为:{0}",start);//5
int begin=5;
Console.WriteLine ("以下是引用参数的实现方式");
Console.WriteLine ("原始值为:{0}",begin);//5
B.showDouble (ref begin);//注意这里的调用方式也要加上ref,10
Console.WriteLine ("处理后值为:{0}",begin);//10,这里与值引用得出的结果不一样,这里其实已经改变了参数的值
//因为变量的值可能会发生变化,所以调用中必须使用变量,而不能是常量,如上面的begin不能定义为const int begin=5
}
}