首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 入門教程(一):Hello World 解析、命名空間、編譯執行全流程

     編輯:關於C語言

前言

C# 是微軟推出的現代、型別安全、物件導向程式語言,語法繼承自 C/C++,設計吸收了 Java、Delphi、VB 優點,目標是結合 VB 開發效率與 C++ 執行效能。本文從最基礎的 Hello World 切入,詳細解析程式結構、命名空間、編譯執行流程、基本語法元素,為零基礎學習者建立清晰認知框架。

第一個程式:不一樣的 Hello World


// idontlikeHelloworld.cs
using System;

class IDontLikeHelloWorld {
    static void Main() {
        Console.WriteLine("I don't like Hello World");
        Console.ReadLine(); // 防止控制台即刻關閉
    }
}

編譯與執行

  1. 環境需求:Windows 2000+、.NET Framework SDK (含 csc.exe 編譯器)
  2. 命令列編譯:
    
    csc idontlikeHelloworld.cs
    // 產生 idontlikeHelloworld.exe
    
  3. 執行:雙擊 .exe 或命令列輸入程式名
  4. 副檔名技巧:存為 .c 可用 VC++ IDE 編輯,csc 同樣編譯

程式碼逐行解析

行代碼解析
1using System;匯入 System 命名空間,後續可直接用 Console 而非 System.Console
2class IDontLikeHelloWorld定義類別,C# 程式碼必須在類別/結構內
3{類別主體開始
4static void Main()程式進入點:static(無需實例)、void(無回傳)、Main(固定名稱)
5Console.WriteLine(...)呼叫 System.Console 類別的靜態方法,輸出字串並換行
6Console.ReadLine()等待使用者按 Enter,否則主控台視窗一閃而過
7}Main 結束
8}類別結束

命名空間 與 using 指令


// 語法
namespace [名稱] { 命名空間主體 }

// 範例
namespace MyApp {
    class Program { static void Main() { } }
}

// 使用
using MyApp;           // 匯入整個命名空間
using Sys = System;    // 別名(解決衝突/簡化長名稱)

關鍵點:

  • 命名空間組織類別,避免名稱衝突
  • using 僅是編譯器捷徑,不影響輸出 IL、不載入組件
  • 未 using 時需寫完整名稱:System.Console.WriteLine
  • csc.exe 自動參考 mscorlib.dll (核心類別庫),其他組件需 /r:Assembly.dll

C# vs C/C++ 語法關鍵差異

特性C/C++C#
範圍解析:: (命名空間/類別/全域)統一用 . (命名空間.類別.成員)
指標/間接*、&、->僅 unsafe 區塊允許,99% 代碼不用
前置宣告需 #include、標頭檔無需宣告,直接使用,編譯器解析中繼資料
主程式int main() 全域函式static void Main() 在類別內
大小寫敏感是是

編譯器如何尋找類別

  1. 原始碼中使用 Console
  2. 編譯器查找 using 匯入的命名空間
  3. 在參考組件中繼資料表搜尋 System.Console
  4. 找到方法簽章 WriteLine(string),發出 IL call 指令
  5. 執行時 CLR 載入 mscorlib.dll,JIT 編譯執行

常見新手錯誤

  • 漏寫 using System; → CS0103: 名稱 'Console' 不存在於目前內容中
  • Main 拼錯大小寫 → CS5001: 程式沒有適合的靜態 'Main' 方法
  • 中文字串未存為 UTF-8/BOM → 編譯警告或亂碼
  • 忘記 Console.ReadLine() → 主控台一閃而過以為沒執行

總結

C# 程式結構:using → namespace → class → static void Main()。編譯器 csc.exe 將原始碼編譯為 IL 組件,CLR 執行時 JIT 為機器碼。命名空間與 using 解決了 C/C++ 標頭檔地獄,中繼資料取代前置宣告。下一課將進入型別系統:值類型 vs 參考類型、簡單類型、列舉、結構、類別、介面、委派、陣列。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved