不學 JAVA 換學 C# 之覺得心累 - Level 1

前言

這篇主要是紀錄初學者會學習到的基本語法、程式內容和一些我自己的理解(有誤再請糾正)。

當初,我在自學 C# 的時候,就是從以下 freeCodeCamp小山的C#教學在 YouTube 上提供的影片學習的。

主要內容關於 變數判斷式迴圈一維陣列多維陣列物件導向基礎Class(建構子、this、getter/setter)實質型別(Value Type)參考型別(Reference Type)封裝繼承Class(override、Base)Abstract Class & MethodFile/Stream

背景

C# 是微軟推出的一種基於 .NET Framework(.NET框架) 的進階程式語言,有 物件導向(Object Oriented Programming) 的特性。

C# 以 .NET Framework 類別庫 (一堆預先寫好的工具,可以直接拿來使用,不稱 函式庫 是因為 C# 是完全物件導向的語言) 作為基礎,擁有類似 Visual Basic 的快速開發能力。微軟在 2000 年發布了這種語言,希望向 Java 靠攏,也因此語法與其類似。C#的發音為「C sharp」,藉助這樣的命名,表示 C# 在一些語言特性方面對 C++ 的提升的意思。

註:物件導向、Object Oriented Programming(OO/OOP),簡單的概念是每個物體 (object) 都有其類別 (class),期望可以對應到現實世界中的事物。例如:來福的類別是西施犬,發財的類別是台灣土狗,而西施犬和台灣土狗的類別都是狗。

程式的執行方法

編譯時 Compile time:C# code >> 中間語言 IL

C# 並不被編譯 (compile time) 成能夠直接在電腦上執行的二進位機器碼。與 Java 類似,它被編譯成為 中間程式碼 又稱 中間語言中繼語言Microsoft Intermediate Language(IL)/(MSIL),然後通過 .NET Framework的虛擬機器 —— 被稱為通用語言運行庫,又稱為 通用語言執行層通用語言運行平台Common Language Runtime(CLR) —— 將 IL碼 轉換為作業系統的原生碼 (Native code),也就是二進位機器碼。

所有的 .Net 程式語言都被編譯成這種被稱為通用中間語言的 IL碼。因此雖然最終的程式在表面上仍然與傳統意義上的可執行檔都具有「.exe」的字尾名。但是如果電腦上沒有安裝 .Net Framework,那麼這些程式會彈出對話方塊,要求用戶下載 .Net Framework。

執行時 Run time:虛擬機器 CLR 載入類別庫 >> CLR 將 IL 翻譯成 Native code >> 存在緩衝區

在程式執行時 (runtime), .Net Framework的虛擬機器 CLR,會將預先定義好的類別庫,載入到記憶體中,再將中間程式碼翻譯成為二進位機器碼,從而使它得到正確的執行。最終的二進位程式碼被儲存在一個緩衝區 (Buffer) 中。

一旦程式使用了相同的程式碼,那麼將會呼叫緩衝區中的版本。這樣如果一個 .Net程式第二次被執行,那麼這種翻譯不需要進行第二次,速度明顯加快。

註1:IL 是介於高階程式語言和二進位機器碼中間,不直接被電腦執行。
註2:CLR 中有即時編譯這種編譯器,又稱 Just-in-time compilation(JIT),屬於一邊執行一邊翻譯的動態編譯。

參考資料:維基百科 - C#

應用

C# 可以吃嗎?

他的強大之處在於,.Net Framework 已经是 Windows 的一部分了,因此在開發 Win桌面應用程式 效率較高,此外還有 網站後端API遊戲(Unity等框架)AndroidiOS 等,可以在下圖中紅框處看到。


因應不同的開發,在進入開發環境前,記得選對開發模式

此外,因為是微軟開發的語言,在Mac版中還有許多功能並沒有完全支援。

此篇主要是關於 Console 形式 (一種特殊的 終端機命令提示字元 ) 的學習筆記。不會出現 Windows Forms App (Win桌面應用程式)ASP.NET Web Application(網頁應用程式,有 Web Form、MVC 兩種) 等的教學。

想學 ASP.NET Web Application >> 掉入 ASP.NET MVC 馬里亞納海溝的第一天

整合開發環境 IDE

Integrated Development Environment,簡稱 IDE,就是可以拿來寫程式的平台,寫完之後可以進行編譯執行的環境。

下載位置:Visual Studio,Windows 系統請選擇 Windows 版本,Mac 系統請選擇 Mac 版本。

請不要下載成 Visual Studio Code,那只是文字編輯器,可以在上面寫程式,但是不能進行編譯。

如何建立一個專案

下載好IDE,開始新專案

Windows

請選擇 「檔案」File >> 「新增」New >> 「專案」Project

w

Mac

請選擇 「檔案」File >> 「新增解決方案」New Solution
或是直接按最右邊的 + New

m

在選擇開發模式視窗中

Windows

請選擇 最左列 Visual C# >> 中間列的 Console App (.Net Framework)

w1

w2

Mac

請選擇 最左列「其他」(Other) 裡的 .Net >> 中間列「一般」(General) 裡的 Console Project
m1
m2

開始撰寫程式碼之前

ch0 程式架構

學習資料

freeCodeCamp on YouTube

小山的C#教學

小山老師的影片有時候滿好笑的,會讓大家覺得學程式也是有趣的一件事情。建議搭配小山的部落格,如下,文字版可以學到影片外的補充說明唷~
SLMT’s Tutorial Blog