C 高階程式設計筆記(一)

2022-07-19 05:21:17 字數 1989 閱讀 2896

c#與.net

c#本身是一種語言;.net framework是乙個平台即乙個環境。

只是c#編譯器專門用於.net,所以c#**總是使用.net執行。

.net framework 的核心是執行執行環境(公共語言執行庫clr、.net執行庫).

在clr下執行的**稱為託管**(mannaged code)

clr對於源**(code)的執行過程:

1..net將code編譯為il  2. clr將il編譯為平台專用**

il:microsoft中間語言(使用數字**)

il中間語言

特點:1.物件導向和使用介面

2.值型別和引用型別的顯著差異

3.強資料型別化

4.使用異常來處理錯誤

5.使用特性(attribute)

垃圾**:一般兩種方式:手動釋放;物件維護計數;

安全性:**訪問安全性;

程序:用來孤立**的唯一方式。

所有的c#**都必須包含在乙個類中。

型別推斷(type inference): 使用var關鍵字。編譯器根據變數的初始化值「推斷」變數的型別

變數作用域:

欄位和區域性變數的作用域衝突:區分名稱相同、作用域相同的兩個識別符號:將類級別宣告的變數標識為字段,將方法中宣告的變數看做區域性變數,這種情況下變數可以重名(但是在方法中的變數會隱藏類級別的變數),引用類級別的變數可以使用object.fieldname(需區分靜態訪問object.fieldname與非靜態訪問this.fieldname)

常量(conts)

常量總是靜態的(不必在宣告中使用static);必須在宣告時初始化,而且指定值後不能再改寫;必須能在編譯時用於計算,即不能使用變數值來初始化常量(唯讀字段可以這麼做);

預定義資料型別

值型別與引用型別

值型別直接儲存其值,引用型別儲存對值的引用(值物件在託管堆上的位址);值型別儲存在堆疊中,引用型別儲存在託管堆上;

一般將自己的型別定義為值型別可以把它宣告為結構。

c#有15個預定義型別,其中13個值型別,兩個引用型別(string 和 object)

c#認可的基本型別沒有內置於c#語言中,而是內置於.net framework中。eg:c#中的int 實際上是.net結構中的system.int32;

意義:在語法上可以把所有的基本資料型別看成是支援某些方法的類。基本型別在概念上用.net結構表示。

eg:int i; string str = i.tostring();//這句中將int型別轉換為string型別沒有效能損失。

預定義值型別:

整型:在強調型別安全時,c#認為byte型別與char型別不同,必須顯示轉換;byte無符號,sbyte有符號;

預定義引用型別:

object型別:c#中的最終父類,所有內建型別以及使用者定義的型別都從它派生。

目的:(1).使用object引用繫結任何子型別的物件。eg:裝箱、反射;

(2).實現一般用途的基本方法,equals(),gethashcode(),gettype(),tostrng().

string型別:string型別與引用型別的區別。字串不可改變,修改其中乙個字串,就會建立乙個全新的string物件,而另乙個不會改變。

eg:

1

string str1 ="string1」;

2string str2 =str1;

3 console.writeline("

str1 is ;str2 is

",str1,str2);

4 str1 = "

new string1

";//

改變str1 的值,但此時str2並未改變

5 console.writeline("

str1 is ;str2 is

",str1,str2);

原因:運算子過載,這裡過載了「=」(賦值)運算子。

轉義字元、@的使用。

於2023年1月7日23:09:36

C高階程式設計筆記一

有關螢幕操作的函式 void clrscr void 該函式將清除視窗中的文字,並將游標移到當前視窗的左上角,即 1,1 處。void clreol void 該函式將清除當前視窗中從游標位置開始到本行結尾的所有字元,但不改變游標原來的 位置。void delline void 該函式將刪除一行字元...

《C 高階程式設計》讀書筆記(一)

1,string型別的特殊性 string型別是乙個引用型別,因此當把義字串變數賦予給另乙個字串是,會得到對記憶體中同乙個字串的兩個引用。但是,string與引用型別的常見行為有一些區別。例如,字串是不可改變的。改變其中乙個字串,就會建立乙個全新的string物件,而另乙個字串不發生任何變化。str...

javascript高階程式設計筆記(一)

第五章引用型別 js建立陣列的方式兩種 1var colors new array 裡面可以定義長度或者實際內容。2 var color js中沒有 塊概念for var i 0 i 10 i alert 結果為10 js函式中var宣告的函式會自動新增到最近的環境,比如呼叫乙個函式,裡面的var變...