類型介紹
在幾乎所有的OOP語言中,都存在2種類型的值。
值類型 引用類型
以C#為例:其值類型為sbyte,byte,char,short,ushort,int,uint,long和ulong,float和double,當然還有decimal和bool。而引用類型則是string和object。
我想說的
我想說的就是——Ref和Out把我弄糊塗的原因是,當時沒有認真的去分析它對不同類型所做出的不同的動作。
對於值類型。
使用了Ref和Out的效果就幾乎和C中使用了指針變量一樣。它能夠讓你直接對原數進行操作,而不是對那個原數的Copy進行操作。舉個小例子:
using System;
namespace ConsoleApplication4
{
///
/// Class1 的摘要說明。
///
class Class1
{
///
/// 應用程序的主入口點。
///
[STAThread]
static void Main(string[] args)
{
int a = 5;
int b;
squareRef(ref a);
squareOut(out b);
Console.WriteLine("The a in the Main is: " + a);
Console.WriteLine("The b in the Main is: " + b);
}
static void squareRef(ref int x)
{
x = x * x;
Console.WriteLine("The x in the squareRef is: " + x);
}
static void squareOut(out int y)
{
y = 10;
y = y * y;
Console.WriteLine("The y in the squareOut is: " + y);
}
}
}
顯示的結果就是——25 100 25 100。
這樣的話,就達到了和C中的指針變量一樣的作用