名詞解釋:
1、CLR---------Common Language Runtime ------------公用語言運行環境,管理著代碼的執行。
2、JIT---------Just In Time -----------------------即時編譯器。 作用:執行時將中繼語言編譯成本地代碼
3、MSIL--------MicroSoft Intermediate Language-----微軟中繼語言。編譯時間編譯器將代碼轉化為中繼語言和中繼資料。
4、名字空間----相當與java中的包(package)
1)起源:
微軟internet平台戰略,2000-6-22發布.net架構
2)特點:
1、完全支援xml,與web緊密串連
2、對象自動回收
3、跨語言 (來自於他的虛擬對象系統)
3).NET的結構
1、虛擬對象系統 (VOS) :跨語言整合,程式員可以選擇自己喜歡的開發語言,只要他支援.net
2、中繼資料---------------:對VOS中類型描敘代碼的一種稱呼,編譯時間自動產生,與原始碼共同包好在二進位代碼檔案中
3、Common Language Specification(CLS)
4、虛擬執行系統(VES):啟動並執行環境
4)HelloWorld
using System;
class HelloWorld {
static void Main () {
Consol.Write("Hello World!");
}
}
說明:原始碼尾碼為.cs
5)資料類型(實值型別 簡單類型,結構類型,枚舉類型):
1、整型----------sbyte(帶s都是有符號的),byte(0到255),short,ushort,int,uint,long,ulong
2、布爾型--------bool (true,false)
3、實數----------float,double C#中專門添加decimal類型,方便在金融和貨貝方面的運算
4、字元----------char 其中有逸出字元:\',\''等。
5、結構類型------struct Student {
public string Name;
public float score;
}
6、枚舉類型------enum WeekDay {Sunday;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday};
6)資料類型(參考型別):----所謂參考型別是:該類型變數不直接儲存所包含的值,而是指向該值,也就是儲存該引用值的地址。
1、類:--------------object類是所有類的基類。
2、String類----------sting s="hello";
3、代表(delegate)----a)說明:C#取消了指標的概念,當然也可以用指標,但必須申明為unsafe不安全的。
b)定義:delegate int Mydelegate(); ----代表相當於函數指標原型。
c)使用:Mydelegate d=new Mydelegate(類.方法)
d(); //然後就相當於直接掉函數。
4、數組--------------a)定義: int[] arr=new int[5]; // int[] arr=new int[5] {1,2,3,4,5} //
int[] iArr; ---一唯
int[,] iArr;----二唯
int[,,] iArr;----三唯
7)裝箱和拆箱(boxing--unboxing):用於實值型別,參考型別,object物件類型之間的轉換。
1、裝箱-------------將一個實值型別隱式的轉化為一個object類型
例子:int i=10;
object obj=i; //隱式
object obj=object(i) //顯式
2、拆箱-------------將一個物件類型轉化為一個實值型別
例子:int i=10;
object obj=i;
int j=(int)obj;
8)運算式
1、運算子----- a:一元運算子 ++,-- // b、二元運算子 +,-,*,/,%(取餘) // c、三元運算子 y=(x>10?1:0)
2、關係符----- == (等於) != (不等於)
3、as操作符--- 將一個值轉化為指定的參考型別,如果不能轉換則返回null值。
4、邏輯符號--- &&(並且) || (或者) !(非)
9)流程式控制制
1、if判斷結構--------if (條件) {} else {};
2、swith開關結構-----swith (運算式) {
case 值1:do something;break;
case 值2:do something;break;
default: .....
}
說明:其中可以不使用break;而使用goto case 值1轉向//或者goto default;
3、For迴圈結構-------for (int i=0;i<=10;i++) {...}
while迴圈 -------while (條件) {...};
do ...while迴圈---do {...} while (條件)
10)異常處理
1、結構1-------- try {...} catch (Exception e) {...} //e.message
2、結構2-------- try {...} finally {...}
3、結構3---------try {...} catch (Exception e) {...} finally {..}
4、拋出一個異常:
a.--- throw new Exception("錯誤資訊");
b.----e=new Exception ("錯誤資訊");
throw;
11)類:
1、類的修飾符
a.public ------不限制訪問。
b.protected----保護類,所在類和其子類可以訪問。
c.internal-----所在類才能訪問
d.private------該包中的應用程式和庫才能訪問
e.abstract-----抽象類別,不允許建立執行個體
f.sealed-------密封類,不允許被繼承。 //seal /si:l/密封。。海豹
2、類的成員
公用成員,私人成員,保護成員,內部成員。
3、this保留字
僅限於在建構函式,類的成員和類的執行個體中使用。
4、成員常量
public const int i=10;
5、建構函式:
a、建構函式通常與類名相同。
b、建構函式不聲明傳回型別。
c、建構函式總是public的,如果為private則表示該類不能被執行個體話。
例子: class A
{
public A(int i) {...}; //建構函式
}
6、解構函式
a、解構函式的名字與類名相同,只是前面有一個波浪~符號。
11)方法:
1、修飾符:new、public、protected、internal、private、static、virtual、sealed、override、abstract、extern
說明:對於abstract、extern方法的執行體只有一個分號;也就是只有聲明沒有實現。
2、參數
a、值參數 -------不含任何修飾符號 :傳遞的是值的拷貝,任何修改不影響原來的參數
b、引用參數------以 ref為修飾符 :傳遞的是值的地址,
c、輸出參數------以out為修飾符 :輸出參數與ref參數的區別是:調用函數前不需要對該參數初始話
d、數組參數------以params為修飾 :
說明1:數組參數必須位於參數表的最後
說明2:參數只允許是一唯數組
說明3:數組參數不再有ref,out修飾符
3、方法的重載-------類中有同名的方法,但是參數必須不同。
4、操作符的重載-----
12)域和屬性
1、域:就是成員變數。 修飾:public、protected、internal、private 。。。static靜態域.
唯讀域:public static readonly double pi=3.1415926
2、屬性:聲明---attributes 修飾符 類型 名稱
屬性的讀:get 寫 set
13)事件和索引指標