C#值類型和引用類型的區別

C#中int是值類型,類是引用類型。

如下一段代碼:

//------------------------------------------引用類型部分

MaterialMOD modM = new MaterialMOD();//創建MaterialMOD實體對象
getMod(modM);//賦值
Response.Write(modM.Name);//輸出結果:李四

/// <summary>
 /// 給Name賦值
 /// </summary>
 /// <param name="m"></param>

public void getMod(MaterialMOD m)
 {
            m.Name = "李四";
 }

 

//-------------------------------------------值類型部分

int i = 0;
 Add(i);
 Response.Write(i);//輸出結果:0

 

/// <summary>
 /// 賦值累加
 /// </summary>
 /// <param name="Num"></param>
public void Add(int Num)
 {
            Num = Num + 2;
 }

 

 

//---------------------------------個人理解

Add方法,改變的是變量Num的值,因爲Num和i 是值類型,存儲的都是實際的值。改變的只是Num的值,所以 並不會改變 i 變量的值。

getMod方法,改變變量m的值,因爲m和modM都是類對象,是引用類型,兩者在內存中分配的是同一塊地址,改變m的值,實際上是改變m在內存地址中的值、而modM和m用的是同一塊內存地址,所以modM的值也跟着變了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章