什么是.Net?
1. 通常意義所說的.net有5個組成部分,但最主要的部分是.NET Framework, .NET Framework實際上是運行在Windows操作系統的一個應用程序,一個可供二次開 發的類庫。.NET Framework包括以下組件:
公共語言運行庫(CLR)
基礎類庫(BCL)
數據庫訪問組件(ADO.NET和XML)
基於ASP.NET編程框架的網絡服務(Web Service)和網絡表單(WebForms)
Windows桌面應用界面編程組件(WinForm).
2..NET是微軟公司和sum公司的結果
3. 狹義的.net是指.net Framework,。.net Framework核心是CLR(公共語言運行時)
4..Net可以使用多種語言來開發應用系統
.Net的運行機制?
.net源代碼 |
中間語言IL (Intermediate Language) |
CLR(Common Language Runtime)公共語言運行庫 |
第二次編譯 |
機器碼(可執行的最終代碼) |
在.net中,編譯分為兩個階段:
1.把原代碼編譯為中間語言(IL)
2.CLR把IL編譯為平台專用代碼.
.Net常見的術語?
Mircorsoft中間語言(Microsoft Intermediate Languane)MSIL
通用類型系統(Common Type System) CTS
公共語言規范(Common Language Specification ) CLS
公共語言運行庫(Common language Runtime) CLR
托管代碼(Manged Code)
即時編譯(JIT)
.Net能夠使用多語言開發的原因(語言互操作的原因)?
1. 所使用的語言必須遵守公共語言規范。
2. 進行第一編譯后,在中間語言里,類型都變成了統一的(通用類型系統)。
3. CLR進行二次編譯,編譯成機器碼。
c#基本語法?
變量
1.〉在C#中聲明變量用如下語法:
datatype identifier 即:數據類型 變量名
注意:
在C#中變量必須先聲明后使用(強類型語言)
C#嚴格區分大小寫
變量必須以字母或者下划線開頭,但變量名中可以包含數字
Int num 對
Int _num 對
Int 2num 錯
不能把C#關鍵字作為變量名
2.〉變量的作用域
變量的作用域就是變量在代碼當中能起作用的范圍。一般情況下有以下規則:
(1) 字段(變量)所屬的類在某個作用域內,那么變量也在該作用域內起作用。
(2) 局部變量(指包含在函數中的變量)的作用域存在於該變量所在的塊語句或方法結束的封閉的大括號之前。
(3) 在for,while或類似語句中聲明的局部變量存在於該循環體內。
3.〉局部變量的作用域沖突
大型程序在不同的部分使用相同的變量名是很常見的,但要注意,同名的變量不能在程序的同一作用域聲明兩次。
using System; namespace ScopeTest { class Test { [STAThread] static void Main(string[] args) { // int i=20; // int i=30;//不可以,同名的局部變量不能在同一作用域內聲明兩次。 //以下的變量聲明方法可以 for(int j=0;j<10;j++) { Console.WriteLine(j); } //在這個地方,j的作用域已經無效,所以可以重新聲明一個j for(int j=9;j>=0;j--) { Console.WriteLine(j); } } } }
4.〉字段和局部變量的作用域沖突
有的時候,可以區分名稱相同、作用域相同的兩個標識符。此時編譯器允許聲明第二個變量因為C#使變量之間有個基本的區分,把聲明為類級的變量看作是字段,而把方法中聲明的變量看作是局部變量。考慮下邊的代碼:
using System; namespace ScopeTest1 { /// <summary> /// Class1 的摘要說明。 /// </summary> class Test { /// <summary> /// 應用程序的主入口點。 /// </summary> static int j=20; [STAThread] static void Main(string[] args) { int j=30; Console.WriteLine(j); } } }
雖然在同一作用域內聲明了兩個j,但第一個j定義在類的級別上(static),在該類被刪除以前都有效。此時,第二個變量j隱藏了同名的類級變量j,局部變量在起 作用。所以結果為 30。那么,如果要使用類級變量怎么辦?可以使用object.fieldname。