/*
* 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
}
}