C 學習筆記一(概念,物件與型別,繼承)

2022-08-16 22:39:23 字數 2094 閱讀 8716

一.基礎

1.clr為公共語言執行庫,類似於jvm

二.核心

1.using static 空間名.類名;可以將乙個類的靜態方法暴露出來直接呼叫。

2.每個c#可執行檔案都必須有乙個入口點main()方法,如果有多個類都有main方法,那麼只執行其中乙個。可以在專案屬性裡面設定main的引數。

3.任何變數必須賦值(初始化)之後才能使用。

4.var是推斷型別,系統會根據var的初始化的值的型別確定其型別。

5.宣告常量的方式為const int a=2; 常量可以在方法或者類成員中定義,類成員常量總是隱式靜態的,不允許新增修飾符static。

6.在語法上可以把所有的基本資料型別看成支援某些方法的類。例如把int i轉換成string型別,string s=i.tostring();但是實際上i仍然儲存為基本型別。

7.string是乙個引用型別。string物件被分配在堆上而不是棧上,因此檔把乙個字串變數賦予另乙個字串時,會得到同乙個字串的兩個引用。但是,string與引用型別的常見行為有些區別。例如,字串是不可改變的,修改其中乙個字串,就會建立乙個全新的string物件,而另乙個字串不發生任何變化。從這一點上有點類似值型別。

8.轉義字元@的使用 string path=「c:\\a\\d.text」;等價於string path=@「c:\a\d.text」; 同時這裡還支援使用直接換行。

轉義字元$允許把花括號放在乙個包含變數或者表示式**的字串中。例如 string s=「hello world」; console.writeline($"我要輸出 ");

9.關於c#中switch語句,case後面執行語句後沒有break語句的會被標記為錯誤,如果乙個執行語句為空,且沒有break,就會自動跳到下乙個case,關於這點的使用懶得寫,看書;case的位置是無關緊要的,甚至可以把default放在最前面。switch的case 支援變數,但是case的變數不能相等。

10.foreach迴圈不能改變集合的中各項的值,如果需要應使用for迴圈(如果各項的值是引用型別好像能改變)。

11.命名空間的一般規則為:公司名.專案名.功能名。

可以在using語句上給較長的命名空間起乙個較短的別名,從而減少編碼的長度。但是使用命名空間中的類時,使用::符號,如,別名::類名 a=new 別名::類名();

12.在命名規則內c#支援任何unicode字元組合成的識別符號。如果要讓關鍵字成為識別符號,可以在前面加上@,如 string @int=「hello」;

13.命名規則推薦使用camel(首字母小寫)和pascal(首字母大寫)。

三.類

1.屬性可以用來儲存值,可以通過給get和set設定public private等設定訪問許可權,也可以用來設定對字段的訪問許可權 set}。

2.方法的過載的要點是引數的型別或者數量不同。

3.可以呼叫方法時,可以明確引數的意義如test.do(x:20, y:15, t:true);

4.可以設定可選引數void test(int a,int b=2),因為b已經定義,因此test可以只傳遞乙個引數 test(3);

5.使用param可以定義引數的數量或者不同型別的引數,具體的,妹的,懶得寫在第81頁。

6.靜態建構函式:這個函式在程式啟動後自動執行一次,不需要例項化,並不影響正常的建構函式的執行。這裡主要用來做一些靜態變數的初始化工作。例如如果靜態變數backcolor表示星期幾的顏色,那麼這裡可以由靜態建構函式自動設定,而省去了例項化後再由其他程式設定的過程。

7.唯讀readonly關鍵字,去他妹的,真雞肋的關鍵字,不想寫。

四.繼承

1.類不支援多重類繼承,但支援多重介面繼承;結構體只支援介面繼承。

2.屬性也能定義成虛的。

3.方法名前用new進行修飾的最大總用應該是用來進行解決版本衝突。

4.seald修飾符,如果放在類名前修飾類,表示這個類不能被繼承,放在方法前表示方法不能被重寫。

5.介面也可以繼承乙個介面。

6.is用於判斷當前例項是否可以強制轉換成某乙個類;as用於直接轉換,如果結果不為空,即轉換成功,結果為空,即轉換失敗。這樣就避免了轉換異常的出現。

OpenGL學習筆記(一)概念了解

opengl一般被認為是一種api aplication programming inte ce 包含了一系列可以操作圖形 影象的函式。但實際上它是一種規範,它嚴格規定了每個函式該如何執行以及它們的輸出值。opengl就是乙個大狀態機,它通過一些狀態設定的函式 state changing func...

XSL學習筆記一 概念 作用與使用方法

xsl學習筆記一 概念 作用與使用方法 一 什麼是xsl 所謂xsl,就是可擴充套件樣式語言 extensible stylesheet language,簡稱xsl 參考自 其中包含xslt,即可擴充套件樣式表轉換語言 extensible stylesheet language transfor...

C 繼承與派生 學習筆記

一 繼承和派生的基本概念 繼承是c 語言中的一種重要的機制,也是物件導向的乙個重要特徵,實現了物件導向程式設計思想中軟體復用的功能。繼承的實質就是通過現有的類的特徵,構造乙個具有現有類特徵的新類,這個新類成為派生類。派生類是從乙個或者多個以前定義的類 基類 繼承資料和函式,同時增加或者重定義資料和函...