不學 JAVA 換學 C# 之覺得心累 - L1:ch0 程式架構

前言

了解程式的架構非常重要,程式碼並不是隨意組合而成,它有其規定的語法和核心結構,了解基礎的架構有助於理解該程式碼運行的步驟和規則,能讓學習者更全面地理解程式碼、並能更快速地上手。

基礎程式架構

新的專案被開啟時,我們會看到如下的程式碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Windows版本
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HelloWorld
{
class Program
{
static void Main(string[] args)
{
//一行一行的程式碼
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
// Mac版本
using System;

namespace HelloWorld
{
class MainClass
{
public static void Main(string[] args)
{
//一行一行的程式碼
}
}
}

每個程式語言中都有預先定義好的一些關鍵字,它們都各有不同的使用上的意義。

  • using 用來呼叫內建的程式庫、類別庫(一堆預先寫好的工具,可以直接拿來使用)。請用 ;分號 結尾。
  • namespace 命名空間,被設計用來整理程式碼,在不同的命名空間之下,class(類別)可以有相同的名稱,不會彼此衝突。想成是自己定義的程式庫,下層常有class的存在。請用 {}大括弧 將內層包住。
  • class 類別,是負責工作的人,通常會有很多個,分成很多部分,下層常有 method(方法) 的存在。請用 {}大括弧 將內層包住。
  • method 方法,在其他程式語言中可能稱為 函式,名稱後方一定有 ()小括弧 的存在,() 內可能需要,也可能不需要放入參數。請用 {}大括弧 將內層包住,裡面會有很多執行程式的語句 (statement)。
  • Main method 是 C# 中最特別的 method,是程式開始執行的地方,又稱進入點 (Entry Point)。

開新專案時,Windows 和 Mac 版本的差異

Windows 和 Mac 版本不一樣的地方,對我們要開始學習 C# 沒有影響。因為最初只會用到 System 這個程式庫,其他的暫時都不會用到。

1
2
3
4
5
// 暫時都不會用到
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 後面的 HelloWorld 是這個命名空間的名字,也是當初進入新專案時,被要求輸入的專案名稱。

1
namespace HelloWorld

class 後面的 Program 和 MainClass 是這個類別的名字,可以更改成自己想要的名字,注意命名規則

1
2
class Program{} // Windows
class MainClass{} // Mac

Main method 這個 C# 中最特別的 method,記得不要改動名字 Main,名字前面的 回傳型態 void靜態修飾詞 static 也都不要改變,存取修飾詞 public 這邊可有可無,但是 ()小括弧 中的東西(那個東西是傳入的參數)這邊可以拿掉。

1
2
3
4
5
6
static void Main(string[] args) // Windows
public static void Main(string[] args) // Mac

// 也可以如下
static void Main()
public static void Main()