這一次會主要精簡一下我之前做過的筆記,以及有一些大段的東西也仍然是直接複製的,但是也會標記好引用**。
其實就是加乙個const
const int a = 5
那麼a就永遠是5了
const 資料型別 常量名 = 值
(來自呵呵老師)
public enum 列舉名
只能放在class或者namespace中
----列舉宣告
列舉名 變數名 = 列舉名.值
上面的這個值是會自動提示的。
例子public enum gender//列舉沒有public
gender amd = gender.a;
結構體和列舉一樣,只能在class或者namespace宣告
插入–帕斯卡命名法:首字母大寫
public struct person;減少進一步的賦值操作並且省略了宣告陣列長度的方式
·2 int c = new int[3]//宣告同時進行賦值
·3 int d = new int;
陣列.length 陣列的最大長度
null是沒有分配空間
空是指分配了空間但是裡面沒有值
函式如果在同乙個類裡面 那可以省略類名
public static void 函式名(int a,int b)
return有兩個用途
乙個是返回值
乙個是結束函式
alt+f12
string str = console.readline()讀取輸入的值
console.writeline(aaa)輸出括號內的內容
console.readkey 讀取字段
//對於有的函式可能需要返回多個變數的時候
public static void main(string args)
public static void sum(out int a,out int b,out int c)
上面可以看到,這樣子就可以把引數再對應地傳輸回去
要點1、作用
乙個函式如果需要返回多個不同型別的值,則需要用到out引數
2、要點
函式外可以不為變數賦值,但是函式內一定要對變數賦值
3、語法
形參和實參都要加上關鍵字out
ref相對於out,去掉了函式內必須賦值,其他和out基本相同
ref是將量代入方法之中。out是將方法中的量取出來。
out常用於不依賴引數值,而ref是確保呼叫方法時已經初始化引數值
可以當函式的引數不一樣的時候,自動匹配相對應所需的函式,而無需重新定義函式
static void plus(int a,int b)
static void plus(double a,double b)
static void plus(string a,string b)
static void plus(int a,int b,int c)writeline(「文字內容」,變數0,變數1);
物件的語法
類名 物件名 = new 類名();
1、屬性的訪問修飾符
public 公開 誰都可以訪問
private
2、欄位與屬性的理解
屬性的理解
首先來看一下欄位和屬性的**
//字段
private string name = string.empty;
private string aaa = "amd";
private string studentname
//屬性
public string student
set}
對於屬性來說,有三個關鍵字 get set和value
value是這個屬性的具體的值
當這個屬性需要被調取的時候,則會執行get函式
當這個屬性被賦值的時候,則會執行set函式
所以可以在屬性中自行設定set或者get所能得到的東西。
比如說private string = 「男」;
private
3.屬性的作用
a.避免出現非法資料,例如乙個年齡屬性,正常邏輯是年齡是不可以出現負數的,如果使用者對年齡進行了負數的賦值,我們通過屬性的set方法加入判斷邏輯,從而排除這種非法資料。
private int age;
public int age
setelse
}}
參考資料
c#靜態方法與非靜態方法比較一:
c#靜態成員:
1、靜態成員屬於類所有,非靜態成員屬於類的例項所有。
2、每建立乙個類的例項,都會在記憶體中為非靜態成員新分配一塊儲存;
3、靜態成員屬於類所有,為各個類的例項所公用,無論類建立了多少例項,類的靜態成員在記憶體中只佔同一塊區域。
c#靜態方法與非靜態方法比較二:
c#靜態方法
1、c#靜態方法屬於類所有,類例項化前即可使用。
2、非靜態方法可以訪問類中的任何成員,靜態方法只能訪問類中的靜態成員。
3、因為靜態方法在類例項化前就可以使用,而類中的非靜態變數必須在例項化之後才能分配記憶體,
這樣,c#靜態方法呼叫時無法判斷非靜態變數使用的記憶體位址。所以無法使用。而靜態變數的位址對類來說是固定的,故可以使用。
建構函式的目的實際上就是為了傳遞相應的變數,來初始化變數
給物件的每個屬性依此賦值
建構函式是乙個特殊的方法
甚至不能加入void
public 函式名(){}
注意:建構函式沒有返回值,void也不能寫
建構函式的函式名稱要和類的名稱相同
1、建立物件的時候會執行建構函式
2、建構函式可以有過載(媒人手裡有很多的選擇)
3、類中會自動建立乙個無引數的建構函式,若自己寫了乙個建構函式以後,這個無引數的建構函式則會消失。也就是說建構函式本身就會存在乙個預設的啥都沒的。
1、代表當前的類的物件
析構函式
析構函式(destructor) 與建構函式相反,當物件脫離其作用域時(例如物件所在的函式已呼叫完畢),系統自動執行析構函式。析構函式往往用來做「清理善後」 的工作(例如在建立物件時用new開闢了一片記憶體空間,應在退出前在析構函式中用delete釋放)。
重點:以c++語言為例,析構函式名也應與類名相同,只是在函式名前面加乙個波浪符,例如stud( ),以區別於建構函式。它不能帶任何引數,也沒有返回值(包括void型別)。只能有乙個析構函式,不能過載。如果使用者沒有編寫析構函式,編譯系統會自動生成乙個預設的析構函式,它也不進行任何操作。所以許多簡單的類中沒有用顯式的析構函式。
using ***;
字串常用方法
string str ="";
string strarray = str.split(『擷取字元』); //按字元將字串拆分為陣列
str = str.replace(「n」,「m」);//將字串n替換為m
str = str.remove(i,length);//刪除字串下標i,長度為8下標從0開始
str = str.substring(n); //擷取字串,下標充0開始,包括n
bool bl = string.isnullorempty(str)//判斷str是否為"「和nul,返回true為」"或者null
bool bl = str.contains(「n」); //判斷字串str裡面是否包含"n",返回true包含,false不包含
bool bl = str.equals(str1);//判斷字串str和字串str1是否完全一樣(區分大小寫) 返回true完全一樣
int index = str.indexof(「n」);
int index = str.lastindexof(「n」);
//indexof 和 lastindexof 判斷字串第一次出現(indexof)和最後一次出現(lastindexof)的位置,如果沒有出現過則返回值為-1
string s=str.insert(index,"")//在字串的index位置上插入字元,原來的字元依次後移,變成乙個新的字串
char s=str.tochararray();//tochararray將字串轉化為字元陣列(.tochararray())
str = str.trim();// 去掉前後兩邊的空格
str=str.toupper();//轉換為大寫
str=str.tolower();//轉換為小寫
//toupper**換為大寫)和tolower**換為小寫)
堆疊關係就好比執行記憶體和儲存記憶體的區別
堆->儲存記憶體
棧->執行記憶體
### 值型別和引用型別
值型別直接儲存在棧當中,一般是一些可以用於計算機直接運算的值,比如整數,布林值等。
值型別的有:int double bool char struct enum
引用型別的有:string 陣列
而引用型別的資料一般是儲存在堆當中,比如string a = 「and」;
這個地方的字串資料是儲存在對應的乙個位址中,而變數a實際上只是儲存了這個位址,a儲存的資料在棧中。當我們需要a所對應的這個字串資料的時候,實際上是通過找a所對應的這個位址裡面的內容。
當改變引用型別的變數所對應的字串的時候,原先儲存的字串並沒有被馬上銷毀,而是新開一塊空間來存放新的資料,但是舊的資料可以被gc**機制**。
C 快速入門 2
你可能會遇到需要在乙個函式中初始化一塊記憶體的場景,這時,你應該使用二級指標,原因是實參和形參不是同乙個指標,在函式結束後,形參指標將會被釋放,結果是實參最終還是指向本身所指向的空間。如下所示使用二級指標或者一級指標的引用。void init node node 當你使用引用 void init n...
tinyxml快速入門 2
在 tinyxml快速入門 一 中我介紹了使用tinyxml庫如何建立和列印xml檔案,下面我介紹使用tinyxml庫對xml檔案進行一系列的操作,包括獲取xml檔案宣告,查詢指定節點 刪除指定節點 修改指定節點和增加節點的用法。在 tinyxml快速入門 一 中我們知道xml檔案中的乙個節點元素實...
C 快速入門
1.1 呼叫 gnu編譯器的預設命令是 g g prog.cc o prog unix 的 shell視窗 cc prog.cc 標準的輸入與輸出物件 處理輸入時使用的命令 cin cin為 istream型別物件 處理輸出時使用的命令 cout cout為 ostream型別物件 標準庫的另外兩個...