0%

C# 筆記 - C# 語言的基本認識

C# ASP.NET

C# 是微軟推出的一種基於 .NET 框架的、物件導向的進階程式語言。C# 以 .NET 框架類別館作為基礎,擁有類似 Visual Basic 的快速開發能力。C# 由安德斯·海爾斯伯格主持開發,微軟在 2000 年發布了這種語言,希望藉助這種語言來取代 Java。 C# 已經成為 ECMA 國際和國際標準組織的標準規範。

若要看更多關於 C# 的資訊,可見維基百科

何謂 C#

  1. C# ( 念法為 C Sharp )。源自於 C 語言。

  2. C# 為強型別的語言,指的是每一個物件都必須指定型別。使用前你要先幫它規定好,該是整數就是整數 ( int ),該是字串就是字串 ( string ),要把整數當成字串用,就需要使用轉型。在各型別的繼承關係中,最上層的型別是 Object,意即,所有的東西都是物件。

  3. C# 副檔名為 .cs,應用範圍廣,如網頁、大型作業系統、小型嵌入式系統…等皆可以用其來開發。

  4. 為了確保 C# 程式和庫能夠隨著時間的推移以相容的方式發展,在 C# 設計中,已非常強調版本控制。 許多程式設計語言很少注意這個問題。 因此,引入依賴庫的較新版本時,用這些其他語言編寫的程式中斷的頻率超過必要。 C# 設計中受版本控制注意事項直接影響的方面包括單獨 virtualoverride 修改器、方法重載解析規則以及對顯式介面成員聲明的支援。

Hello World

以下為 C# 官方起手式的寫法,並附上說明:

1
2
3
4
5
6
7
8
9
using System;

class Hello
{
static void Main()
{
Console.WriteLine("Hello, World");
}
}

using

寫在最上方用來匯入函式庫(其他命名空間)使用,這也是 using 最常用的用法。

  • 為什麼要匯入其他函式?

用法類似寫 SCSS 使用的 import ,匯入外部程式碼,就可以直接在程式中使用命名空間裡的型別,而不用指定型別的詳細空間,以縮短程式碼。

namespace 命名空間

通常會在 using System 之後,在 class 之前,打包程式碼的空間,把相同功能者聚集在一起,用 namespace 名稱 { } 一組大括號包起來,可以自訂義名稱,預設建立時會設定的跟專案( project )名稱一樣,當其他地方要用到的時候可以呼叫這個名字,如上方 using 後方也都是命名空間。用來指名程式所屬範圍,避免相同名稱類別產生衝突,可以控制類別的範圍。 一個檔案只有一個命名空間。

class

  • 開頭要使用 using, System 代表使用這個命名空間,命名空間包含數個型別 (如程式中參考的 Console 類別),和數個其他命名空間 (如 IOCollections)。並且每一段程式碼要用 ; 分號結尾。
  • 如上方簡介提到 C# 為強型別語言,也就是都要先定義類別 (class) 並給予一個變數名稱,這裡使用變數名稱為 Hello
  • C# 是階層式的語法,從宣告 class 開始,都要使用大括號包住下一層的程式碼。

static void Main(){ }: 進入點寫法

整份程式碼非常多,C# 的世界裡,要告訴電腦從哪一行開始往下讀。這是 Console 模式裡進入點的寫法。C# 只能有一個進入點。

  1. static: 一般類別中的方法必須先建立該類別的實體物件 (new) 後才能使用。若宣告為 static代表一開始就存在在記憶體中,不用先建立 Main() 的物件實體就能叫用。
  2. void: 表示不會傳回任何值。
  3. Main(): 為程式開始執行的進入點。
  4. string[] args:代表執行 Main() 方法時會將接在專案執行檔後面的參數置入 args 陣列。args 是一個字串陣列。

在函式參數中看到這串參數 string[] args ,表示命令列引數是字串陣列,就是說,你在命令列 [] 裡輸入的引數可以使多個字串(在某種意義上意味著什麼都可以是命令列引數)。

  • 執行時會彈出命令視窗,你可以在那裡輸入一些引數,string[] args 指的就是你在命令視窗輸入的引數。args 是用來處理命令列引數的。命令列引數,就是你執行這個程式的時候給它傳的引數。它是可選項,不是必須。

Console

Console.WritLine("Hello World!");

  • console: 是在 console 執行,所以目標就是 console
  • WriteLine(): 這是一種方法,代表 輸出 + 換行 這個動作。() 內要放參數,或是我們要輸出的內容。由於我們要輸出的 Hello World 是字串,要用雙引號包起來。更多輸出內容可以參考 MSDN
  • C#每行程式需要用分號 ; 結尾。

Console.Read();

架構跟上方相同,Read() 這個方法是讀入主控台輸入的字串。這一行是因為,程式預設一執行完就會關閉視窗,會看不到輸出結果。加了這一行它就會等著我們輸入字串暫時不關閉視窗。也可以寫Console.ReadKey();,讀入一個鍵的意思。

接著按下上方執行輸出結果,恭喜你完成 Hello World! 了!

C# 讀入與輸出

讀入

Console.Read(): 讀入一個字元。
Console.ReadLine(): 讀入一行字串。
Console.ReadKey(): 讀入一個鍵。

輸出

Console.Write(): 輸出一段字但不換行。
Console.WriteLine(): 輸出一段字並換行。

所呈現的程式碼內容會如下圖:

the first C#

以上為自學筆記,若有誤還請各位前輩提點指正。

參考資料:

Day04-用 C#寫出第一個 Hello World 吧!(Console 模式/Visual Studio)

C# 語言之旅