回頭再學Asp.net系列--基礎篇(三)
2011-09-14 16:20 熬夜的蟲子 閱讀(279) 評論(0) 收藏 舉報值類型與引用類型小demo
當我們使用引用類型時,我們實際是在處理該類型的指針,而非該類型本身。當我們使用值類型時,我們是在使用值類型本身。聽起來很迷糊吧?
同樣,例子是最好的描述。
假如我們執行以下的方法:
public int ReturnValue()
{
int x = new int();
x = 3;
int y = new int();
y = x;
y = 4;
return x;
}
我們將得到值3,很簡單,對吧?
假如我們首先使用MyInt類
public class MyInt
{
public int MyValue;
}
接著執行以下的方法:
public int ReturnValue2()
{
MyInt x = new MyInt();
x.MyValue = 3;
MyInt y = new MyInt();
y = x;
y.MyValue = 4;
return x.MyValue;
}
我們將得到什么?... 4!
為什么?... x.MyValue怎么會變成4了呢?... 看看我們所做的然后就知道是怎么回事了:
在第一例子中,一切都像計劃的那樣進行著:
public int ReturnValue()
{
int x = 3;
int y = x;
y = 4;
return x;
}

在第二個例子中,我們沒有得到"3"是因為變量"x"和"y"都同時指向了堆中相同的對象。
public int ReturnValue2()
{
MyInt x;
x.MyValue = 3;
MyInt y;
y = x;
y.MyValue = 4;
return x.MyValue;
}

希望以上內容能夠使你對C#中的值類型和引用類型的基本區別有一個更好的認識,并且對指針及指針是何時被使用的有一定的基本了解。
![]() |
原創作品允許轉載,轉載時請務必以超鏈接形式標明文章原始出處以及作者信息。 作者:熬夜的蟲子 點擊查看:博文索引 |

浙公網安備 33010602011771號