標籤:分享圖片 void 基本 oid 介面 toolbar ati new ref
巧記:值(無ref)+值=不變值(無ref)+引=變引(有ref)+值/引=變1.實值型別和參考型別
1.參考型別
源於system.object家族。
(1)類
(2)介面:interface
(3)數組
(4)字串:string:
2.實值型別
源於system.valueType家族
實值型別資料所在的記憶體地區為棧。
3.實值型別:
(1)基礎資料型別 (Elementary Data Type){int,long,double,byte~~~~}
(2)枚舉:enum
(3)結構體:struct
2.結構體
1.定義:
存取修飾詞 struct 結構名
{
//結構體
}
(1)結構體可以有欄位,方法,欄位不能賦初始值。
(2)可以不new,但有條件,結構體中有成員變數和成員方法,成員變數沒有賦值,調用成員方法,不new會報錯,所以一般先new。
例如:
public struct Student{ public int num; public void show() {//代碼 }}
static void Main(string[] args) { Student stu; stu.num; stu.show(); } //沒有給成員變數賦值,報錯
static void Main(string[] args) { Student stu; stu.num=10; stu.show(); } //給成員變數賦值,不報錯
static void Main(string[] args) { Student stu=new Student(); stu.num; stu.show(); } //new出來,不報錯
3.裝箱和拆箱
提示:盡量減少裝箱和拆箱,因為他們會消耗程式的效能。
1.實值型別 =============> 參考型別 (裝箱)
參考型別 =============> 實值型別 (拆箱)
2.要避免裝箱和拆箱因為會減低程式效能。
4.引用方式參數傳遞
(基礎資料型別 (Elementary Data Type),如,整形,浮點型,字元型,bool行及結構屬於實值型別;數組,介面和類屬於參考型別)
使用值方式(不用ref修飾)傳遞實值型別參數時,參數在方法中的修改不會保留
使用值方式(不用ref修飾)傳遞參考型別參數時,參數在方法中的修改會保留
使用引用方式(用ref修飾)傳遞實值型別或參考型別參數時,參數在方法中的修改都會保留
深入C#資料類型