1. 程式人生 > 其它 >c#教程[1] 簡介

c#教程[1] 簡介

本文初次釋出於個人部落格,建議去個人部落格閱讀。

前言

本系列教程是為了我在學校社團課使用而隨手寫的,因此可能有很多隨意或不嚴謹的地方,而且隨時有可能停更,請見諒。
因為高一學校的資訊課學習 pyhton,因此預設讀者有微弱的 pyhton 基礎,故基礎語法可能會講的稍微快一些而且會與 pyhton 的語法進行比較。

簡介

C#是微軟推出的一種基於.NET框架的、面向物件的高階程式語言。C#是一種由C和C++派生出來的面向物件的程式語言。它在繼承C和C++強大功能的同時去掉了一些它們的複雜特性,使其成為C語言家族中的一種高效強大的程式語言。C#以.NET框架類庫作為基礎,擁有類似Visual Basic的快速開發能力。C#由安德斯·海爾斯伯格主持開發,微軟在2000年釋出了這種語言,希望藉助這種語言來取代Java。[1]

第一個C#程式

大家先來看一個在VS2019裡新建C#控制檯應用生成的預設程式(程式碼中的 // 表示單行註釋):

using System;

namespace ConsoleApp // ConsoleApp為名稱空間(namespace)
{
    class Program // Program是一個"類"(class)
    {
        static void Main(string[] args) // Main方法
        {
            Console.WriteLine("Hello World!"); // 輸出語句
        }
    }
}

讓我們看一下上面程式的各個部分:[2]

  • 程式的第一行 using System; - using 關鍵字用於在程式中包含 System 名稱空間。 一個程式一般有多個 using 語句。

  • 下一行是 namespace 宣告。一個 namespace 裡包含了一系列的類。名稱空間包含了類 Program

  • 下一行是 class 宣告。類 Program 包含了程式使用的資料和方法宣告。類一般包含多個方法。方法定義了類的行為。在這裡,Program 類只有一個 Main 方法。

  • 下一行定義了 Main 方法,是所有 C# 程式的 入口點Main 方法說明當執行時 類將做什麼動作。

  • Main 方法通過語句Console.WriteLine("Hello World!");

    指定了它的行為。

    WriteLine 是一個定義在 System 名稱空間中的 Console 類的一個方法。該語句會在螢幕上顯示訊息 "Hello World!"。

  • 最後一行 Console.ReadKey(); 是針對 VS.NET 使用者的。這使得程式會等待一個按鍵的動作,防止程式從 Visual Studio .NET 啟動時螢幕會快速執行並關閉。

大家可能會覺得,這樣比在 python 中輸出 "hello world" 要繁瑣很多,這樣的設計看似沒有必要,但實際上在大型的專案裡能展現出它的優勢[3]

簡單的來說,名稱空間包含類,類包含方法。

大家目前只需要注意一下 Program 類和 Main 方法。
C# 中方法的概念與其他語言中函式的意思區別不大,大家可以理解成函式。
而類的真正概念我們會在以後再講。

Main 方法被包含在 Program 類中,而我們的程式總會從 Main 方法開始執行。

在語句 Console.WriteLine("Hello World!"); 中, Console也是一個類,而 WriteLine() 則為 Console 類中的一個方法,中間的 . 表示訪問 Console 類中的成員[4],此處訪問的即為該類中的WriteLine() 方法。

大家可以注意到一個有意思的現象,我們的 Main 方法也是被包含在一個類中的。事實上,在 C# 中方法的宣告一定在一個類的內部。

因為我們目前只看主函式部分,所以以後會將上面那段程式碼寫成如下的形式:

using System;
Console.WriteLine("Hello World!"); // 輸出語句

事實上,這樣類似 python 的程式碼是 .net5.0 中的新特性:頂級語句。這樣的程式在 .net5.0執行時 是可以通過編譯並正常執行的。



  1. 來自維基百科 ↩︎

  2. 來自菜鳥教程 ↩︎

  3. 這樣的設計是基於一種叫做面向物件(OOP)的程式設計思想,C#和Java都是面向物件的程式語言,pyhton也支援面向物件 ↩︎

  4. 其學名為成員訪問運算子 ↩︎