C# 值類型和引用類型

我們有三個問題

    一、首先在C#中那些是值類型?

    二、其次在C#中那些是引用類型??

    三、最后值類型和引用類型的區別在哪里???

值類型:

1、整形:short , ushort , int , uint , long, ulong, sbyte, byte

2、字符型:char(System.Char)

3、bool型:true,false,

4、浮點型:float(System.Single),double(System.Double);

5、枚舉:Enem

6、結構體:Struct

引用類型:

1、數組:
2、string類型:
3、類
4、接口
5、委托
6、object

值類型和引用類型的區別:

public struct MyStruct               //這是值類型
{             
   public int number;
}
 public class MyClass                //這是引用類型
{
    public int number;
}
public class NewBehaviourScript : MonoBehaviour {  使用unity mono編寫的,懶得開VS了


    void Start()
    {
        MyStruct s = new MyStruct();            //值類型

        s.number = 1;


        MyClass c = new MyClass();              //引用類型
        c.number = 2;
    }


}
圖解.png

public class NewBehaviourScript : MonoBehaviour {


    void Start()
    {
        MyStruct s = new MyStruct();            //值類型

        s.number = 1;

        MyStruct s2 = s;

        s2.number = 5;


        MyClass c = new MyClass();              //引用類型
        c.number = 2;

        MyClass c2 = c;
        c2.number = 10;

        Debug.Log("s:" + s.number + "   s2:" + s2.number + "    c:" + c.number + "    c2:" + c2.number);
    }

圖解2.png
111.png

這是在Unity中打印出來的結果。

如果一個值類型被Static修飾后,這個值類型則屬于類,而類是引用類型。所以這個值類型就會像引用類型。
具體分析

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容