1.值類型和引用類型
1)值類型:源於system.valueType家族數組
值類型數據所在的內存區域爲棧。性能
2)引用類型源於system.object家族。spa
3)值類型:(1)基本數據類型{int,long,double,byte~~~~}3d
(2)枚舉:enumblog
(3)結構體:struct接口
引用類型:(1)類內存
(2)接口:interface字符串
(3)數組string
(4)字符串:string變量
2.結構體
1)定義:
訪問修飾符 struct 結構名
{
//結構體
}
(1)結構體能夠有字段,方法,字段不能賦初始值。
(2)能夠不new,但有條件,結構體中有成員變量和成員方法,成員變量沒有賦值,調用成員方法,不new會報錯,因此通常先new。
例如:
public struct Student
{
public int num;
public void show()
{
}
}
部分略 Main()
{
Student stu;
stu.num;
stu.show(); //沒有給成員變量賦值,報錯
}
部分略 Main()
{
Student stu;
stu.num=10;
stu.show(); //給成員變量賦值,不報錯
}
部分略 Main()
{
Student stu=new Student();
stu.num;
stu.show(); //new,不報錯
}
3.裝箱和拆箱
1)值類型 =============> 引用類型 (裝箱)
反之 (拆箱)
2)要避免裝箱和拆箱由於會減低程序性能。
4.值傳遞和引用傳遞
值傳遞:1 值類型(值不會改變) 2 引用類型(值會改變)
引用傳遞:3 ref 值類型(值會改變)4 ref 引用類型(值會改變)