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的體系結構遠遠不止這些,在後面的章節中我會慢慢加入,大家要相信自己,
随着章節一章一章的前行,你會發現自己在不斷進步中,大家一上來不要急着敲代碼,一定要做到全局眼光看待這門
課程,基礎東西學好了,程式設計就是消遣,後面的章節中,每一章節會開始新的一篇文章,好了,讓我們進入第二
章。)