不學 JAVA 換學 C# 之覺得心累 - Level 1
前言
這篇主要是紀錄初學者會學習到的基本語法、程式內容和一些我自己的理解(有誤再請糾正)。
當初,我在自學 C# 的時候,就是從以下 freeCodeCamp 和小山的C#教學在 YouTube 上提供的影片學習的。
主要內容關於 變數
、判斷式
、迴圈
、一維陣列
、多維陣列
、物件導向基礎
、Class(建構子、this、getter/setter)
、實質型別(Value Type)
、參考型別(Reference Type)
、封裝
、繼承
、Class(override、Base)
、Abstract Class & Method
、File/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等框架)
、Android
,iOS
等,可以在下圖中紅框處看到。
因應不同的開發,在進入開發環境前,記得選對開發模式。
此外,因為是微軟開發的語言,在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
Mac
請選擇 「檔案」File >> 「新增解決方案」New Solution
或是直接按最右邊的 + New
在選擇開發模式視窗中
Windows
請選擇 最左列 Visual C# >> 中間列的 Console App (.Net Framework)
Mac
請選擇 最左列「其他」(Other) 裡的 .Net >> 中間列「一般」(General) 裡的 Console Project
開始撰寫程式碼之前
學習資料
freeCodeCamp on YouTube
- ch1 DrawingAShape (0:05:03)
- ch2 Variables (0:17:23)
- ch3 UserInput (1:00:01)
- ch4 Arrays (1:21:15)
- ch5 Methods (1:29:49)
- ch6 guessingGame (2:34:22)
- ch7 Exponent (2:58:45)
- ch8 2dArrays (3:05:31)
- ch9 ExceptionHandle (3:13:53)
- ch10 ClassObject (3:24:34)
- ch11 Constructors (3:37:39)
- ch12 GetterSetter (3:54:60)
- ch13 StaticMethodAndClass (4:14:45)
- ch14 Inheritance (4:20:55)
小山的C#教學
小山老師的影片有時候滿好笑的,會讓大家覺得學程式也是有趣的一件事情。建議搭配小山的部落格,如下,文字版可以學到影片外的補充說明唷~
SLMT’s Tutorial Blog