C# 學習日記(二)
語法:Const 型別 變數名=常量值
在定義時賦值,其他地方不允許賦值
列舉
讓我們定義一種型別並且在定義這種型別時我們要制定這個型別的所有值
語法:
Enum自己起的型別名稱{值1,值2,值3…..值n};(定義列舉時,這個值不能使int型別)
列舉的定義,一般和類定義在同一個級別,在同一個名稱空間下所有的類都可以使用這個枚舉了
如:enum gender{男,女}
Messagebox.show(“這是我的第一個小視窗”,”標題”,messageboxbuttons.(裡面選列舉的型別))
列舉的作用:1)限制使用者不能隨意賦值,只能賦在定義列舉時列舉的值中選擇
2)不需要死記每一個值是什麼,只需要選擇相應的值
Gender sex;
Sex=gender.男;
列舉型別的變數都可以強制轉換成一個int型別 (int)轉換的型別
列舉的值在定義時是有一個預設編號的,從0開始
字串與列舉的轉換
sex = (自己定義的列舉型別)(Enum.Parse(typeof(自枚),“要轉換的字串”));
結構:
為什麼要用結構
1) 比如我們為了儲存一個人的資訊,要宣告一組變數,當我們要儲存n個人的資訊時,就要宣告n組變數麻煩。
2) 儲存一個人資訊的這幾個變數之間沒有關係,容易記亂。
語法:
訪問修飾符 struct 結構名
{
Public 型別 變數名;//結構的成員
}
定義好一個結構後,就可以直接宣告相應變量了。
宣告好變數後,通過變數名.成員名來訪問結構的成員了。
陣列:
可以幫我們一次宣告多個同類型的變數,這些變數在記憶體中是連續儲存的
陣列宣告語法:
資料型別[] 陣列名=new資料型別[陣列長度];
資料型別[] 陣列名={值1,值2,…..}
通過陣列名.length獲取陣列長度
陣列名.sort排序
陣列名.reserve反轉陣列
方法(函式)介紹
函式就是將一堆程式碼進行重用的一種機制。函式就是一段程式碼,這段程式碼可能有輸入的值(引數),可能會有返回值。一個函式就像一個專門做這件事的人,我們呼叫它來做一些事情,它可能需要我們提供一些資料給它,它執行完成後可能會有一些執行結果給我們。要求的資料就叫引數,返回的執行結果就是返回值。
方法:用來複用的程式碼,當我們在一個過程中反覆的寫同樣的程式碼,那麼一般情況下,我們可以把需要重複寫的程式碼定義在一個方法中,用的時候只需要呼叫就行了
定義方法的語法:
[訪問修飾符][static] 返回值型別 方法名([引數])
{方法體
1)一般情況下方法都要定義在類中}
2)如果方法沒有返回值,則返回值寫void
3)如果方法沒有引數,()不能省略
命名規則:方法名開頭大寫,引數名開頭小寫,引數名、變數名要有意義
方法的呼叫,對於靜態方法,如果在同一個類中,直接寫名字就呼叫了。
Return可以立即退出方法
變數作用域
在方法中定義的變數成為區域性變數,其作用域從定義開始,到其所在大括號結束為止。
當被呼叫者想得到呼叫者方法中的變數時,則可以讓呼叫者這個引數的形給被呼叫者
當呼叫者想訪問我們方法中的變數時,可以通過返回值返回
例如:string s=console.readline();
Int i=convert.ToInt32(“22”);
為什麼方法前面能夠定義一個變數收到方法的值,是因為在方法中使用了返回值
只要在方法中返回了值,那麼在呼叫方法中,前面就應該用一個變數來接收方法的返回值
注意一個方法只能有一個返回值
一旦一個方法有返回值,那麼這個方法值中,就必須通過return語句返回一個值,並且這個值要與返回值型別是相同的
一個變數一旦定義在方法外,類裡面,就叫做類的欄位。這個變數就可以被本類的所有方法所訪問,但是要注意,靜態方法只能訪問靜態欄位
由const修飾的常量不能定義靜態
什麼叫方法過載:
一般在同一個類中,方法名相同,並且方法的引數的個數不同或者對應位置上的型別不同,才能構成方法過載。
注意:方法過載和返回值沒有關係
Out是內部為外部變數賦值,out一般用在函式需要有多個返回值的場所。
例如int.TryParse
實現步驟
1)在方法的引數型別前加out,那麼傳引數的時候,也必須在傳入值前面也加上out,表明這個引數不是傳入,而是用來傳出值的
2)如果引數時以put形式傳入的,那麼在傳入前可以不賦初值
3)在方法中對於由out修飾的引數,必須賦值,並且必須在使用前賦值
Int.TryParse(string s,out int result)
用法:if(int.TryParse(s,out re))==true)
Out用於傳出值
Ref可以理解成是雙向的,既可以傳入,又可以傳出
在傳引數的的過程中,如果引數有Out或者ref修飾的話,那麼改變方法中的引數變數的值,呼叫者方法中變數的值也會相應改變