我們有三個問題
一、首先在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修飾后,這個值類型則屬于類,而類是引用類型。所以這個值類型就會像引用類型。
具體分析