標籤:使用 art for io cti 代碼
二維數組:
int[,] arr=new int[2,3];
arr.GetLength(int i)//擷取第i維的長度
arr.Rank//擷取維度
arr.Length//擷取總元素個數
交錯數組:
本質上是一維數組,一維數組的每個元素都是一個數組
int[][] arr = new int[2][];
arr.Rank 返回1
可變參數:
params只能修飾一維數組,比如int[] arr
調用方法時,可以傳一個數組arr,也可以傳一個int列表,1,2,3這樣
調用的時候會列表封裝成一個數組進行傳遞
必須放在最後
ref/out:
參數傳遞的是地址,調用時要帶上ref/out參數,只能修飾變數
對象建立時的記憶體配置:
new 運算子:
1.在記憶體中開劈一塊合適大小的空間
2.在這個空間裡建立對象
3.調用這個對象的建構函式
4.返回這個對象的引用地址
Person p1 = new Person();
1.在棧中開闢一塊空間,用來存放對象的引用地址
2.在堆中開闢一塊空間,再在這個空間中開闢一塊一塊小空間存放各個成員變數
3.堆中的這塊空間中,還有一個變數儲存了一個地址,這個地址指向方法表中Person類的方法表(代碼區)
4.賦值,把堆的首地址放在棧中去
在方法調用時,要訪問成員變數,誰去調用這個方法,就使用誰的成員變數
類的存取修飾詞:
只有public和internal,不帶修飾符時預設是internal
屬性:
屬性的類型不一定和對應的欄位的類型一致,可能通過邏輯判斷之後賦給其它類型
ctrl+shift+空格:
函數參數列表提示
建構函式相互調用:
public Person():this("張三",18){}
public Person(string name, int age){this.Name=name;this.Age.age;}
調用時會先執行帶參數的建構函式,然後執行無參建構函式的賦值代碼。
隱式建構函式:
沒定義建構函式時,有一個無參的隱式建構函式,定義了建構函式則沒有隱式建構函式
部分類:
用partial修飾,在一個命名空間下同名稱的類,編譯的時候會編譯成一個類
便於分開管理和維護,Form類,表單控制項管理在一個部分類中,而控制項各種行為在另一個部分類中。
常量:
const修飾的變數,只能在(且必須在)聲明時賦值,編譯時間,聲明語句沒有了,直接用常量值替代常量出現的地方。
在編譯時間就要確定值。
唯讀變數:
只能在建構函式中改變,聲明的也可以賦值,編譯時間會把指派陳述式編譯到建構函式中去。
在編譯時間才需要確定值。
枚舉:
把一個不存在與枚舉值的整型數強轉成枚舉值不會報錯,輸出時直接輸出數字。
枚舉值預設是int型的,可以通過enum Direction:byte{}來為枚舉值指定其他整數類型