/**/
/*************************************************
* ref 关键字
* ref 关键字使参数按引用传递。其效果是,当控制权
* 传递回调用方法时,在方法中对参数所做的任何更改都将
* 反映在该变量中。 若要使用 ref 参数,则方法定义和调用
* 方法都必须显式使用 ref 关键字.
*************************************************/
// no use ref
public class MyClass
... {
private int num = 256;
public void Show()
...{
Console.WriteLine(num);
}
public void Set(int num)
...{
num = 1024;
}
public static void Main()
...{
MyClass m = new MyClass();
m.Set(m.num);
m.Show();
Console.ReadLine();
}
}
/**/ /*************************************************
* output
* 256 num 的值未变
*************************************************/
// use ref
public class MyClass
... {
private int num = 256;
public void Show()
...{
Console.WriteLine(num);
}
public void Set(ref int num)
...{
num = 1024;
}
public static void Main()
...{
MyClass m = new MyClass();
m.Set(ref m.num);
m.Show();
Console.ReadLine();
}
}
/**/ /*************************************************
* output
* 1024 num 的值被改变了
*************************************************/
* ref 关键字
* ref 关键字使参数按引用传递。其效果是,当控制权
* 传递回调用方法时,在方法中对参数所做的任何更改都将
* 反映在该变量中。 若要使用 ref 参数,则方法定义和调用
* 方法都必须显式使用 ref 关键字.
*************************************************/
// no use ref
public class MyClass
... {
private int num = 256;
public void Show()
...{
Console.WriteLine(num);
}
public void Set(int num)
...{
num = 1024;
}
public static void Main()
...{
MyClass m = new MyClass();
m.Set(m.num);
m.Show();
Console.ReadLine();
}
}
/**/ /*************************************************
* output
* 256 num 的值未变
*************************************************/
// use ref
public class MyClass
... {
private int num = 256;
public void Show()
...{
Console.WriteLine(num);
}
public void Set(ref int num)
...{
num = 1024;
}
public static void Main()
...{
MyClass m = new MyClass();
m.Set(ref m.num);
m.Show();
Console.ReadLine();
}
}
/**/ /*************************************************
* output
* 1024 num 的值被改变了
*************************************************/