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:
1string 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變...