天天看點

C#入門基礎程式設計(第一章)

2014/6/15

學習C#一段時間了,回頭在csdn這裡找東西時發現,基礎入門性的很少,慢慢加深文章難度的也很少,在這裡,雖然這些計算機大牛們的精彩文章很好,但是作為一個C#程式設計愛好者與一個計算機愛好者,我想在這裡寫一些東西使大家從零基礎入門到熱愛程式設計到成為C#高手。平時由于時間比較緊張的原因,我會不定時的盡量盡快為大家更新内容,如果有疑問的可以在後面跟帖,我會盡力解答。所有内容純手打,參考書籍《C#進階程式設計 第八版C#》下面開始我們的C#快樂之旅吧。

第一章  .NET體系結構

1.1  C#與.NET的關系

C#語言不能獨立使用,而必須和.NET Framework 一起考慮,C#的結構和方法反映了.NET的基礎方法論。

有一個很重要的問題就是:‘’C#就其本身而言隻是一種語言,盡管它是用于生成面向.NET的代碼,但它本身不是.NET的

一部分。.NET支援的一些特性,C#并不支援,而C#支援的一些特性,.NET并不支援(如運算符重載。)

1.2  公共語言運作庫

.NET的核心是其運作庫執行環境,稱為公共語言運作庫(CLR)或.NET運作庫。通常将在CLR控制下運作的代碼稱為托管代碼(managed code).在.NET中編譯分為兩個部分:

1:将源代碼編譯為Microsoft中間語言(il)。

2:CLR把il編譯為平台專用代碼。

對于代碼,這有很重要有點:平台無關性,提高性能和語言互操作性。

(ps:今晚開始的有點晚,這會好瞌睡,大家先看着,我會繼續更新的。)

2014/6/16

1.21 平台無關性

這意味着包含位元組碼指令的同一檔案可以放在同一平台,運作時編譯過程的最後一階段可以很輕松地完成。這樣的代碼可以運作在特定的平台。換言之,編譯為中間語言,就可以獲得.NET的平台無關性,這與編譯為Java位元組碼得到的Java平台無關性是一樣的。

2. visual c++ 2012

visual C++ 有許多microsoft 對windows 的 特定擴充。如果讓C++代碼在.NET中運作,就可以在代碼中加入下述指令:

# using <mscorlib.dll>

托管C++代碼比C#代碼更優越的一點是可以再托管C++中調用非托管C++類,而不必采用COM互操作功能。

3. COM 和COM+

從技術上講,COM和COM+并不是面向.NET的技術。因為基于它們的元件不能編譯為IL(但如果原來的元件式基于C++編寫的,那麼使用托管C++在麼中程度可以這麼做。)但是COM+仍是重要的工具,因為它包含一些.NET不包含的特性。一般情況下,把新元件編寫為.NET元件,大多是為了友善,因為這樣可以利用.NET基類和托管代碼的其他優點。

4.windows運作庫

windows 8 提供了一種新的運作庫,可被新的應用程式使用。這個運作庫可在visual basic      C#     C++和javascript

中使用 ,用在不同的環境,會有相應的變化,這種多樣性是通過語言投影實作的。

4.1  中間語言

中間語言有如下特征:

(1)面向對象和使用接口。

( 2)值類型和引用類型的顯著差異。

 (3)強資料類型化。

 (4)使用異常來處理錯誤。

(5)使用特性。

4.2 程式集

程式集是包含編譯好的,面向.NET Framework 的代碼的邏輯單元。他是一個完全自描述性的,是一個邏輯單元,而不是實體單元,可以存儲在多個檔案中。注意庫代碼和可執行代碼使用相同的程式集結構。唯一差別是,可執行代碼包含一個主程式入口點,而程式及不包含。

//ildasm是一個基于windows的實用程式,可以用于檢查程式集的内容,包含程式集清單和中繼資料。

程式集分為私有程式集和共享程式集。

(PS:各位大神有什麼意見或者發現錯誤地方給小弟指點一下啊,謝謝啊,嘿嘿,今晚就寫這點吧,睡覺去了。。)

2014/6/17

5   .NET Framework 類

至少從開發人員的角度看,編寫托管代碼的最大好處是可以使用.NET基類庫。.NET基類是一個内容豐富的托管代碼

類集合,它可以完成以前要通過的windows API 來完成的絕大多數任務。.NET基類的一個主要優點是他們非常直覺和

易用。例如,要啟動一個線程,可以調用thread 類的start()方法。要禁用TextBox,應把textbox 對象的enabled 屬性

設定為false。.NET基類的新增内容就是把visual basic 和Java 庫的易用性 和windows API函數較為豐富的功能結合起

來。但是windows仍有很多功能不能通過基類來使用,需要調用API函數。

6.    命名空間

命名空間是 .NET 避免類名沖突的一種方式,他不過是資料類型的一種組合方式。可以互相嵌套。

(PS:到這裡第一章就要結束了,.NET的體系結構遠遠不止這些,在後面的章節中我會慢慢加入,大家要相信自己,

随着章節一章一章的前行,你會發現自己在不斷進步中,大家一上來不要急着敲代碼,一定要做到全局眼光看待這門

課程,基礎東西學好了,程式設計就是消遣,後面的章節中,每一章節會開始新的一篇文章,好了,讓我們進入第二

章。)