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

C# 基礎進階:枚舉、陣列與命名空間全解析

     編輯:關於C#

一、枚舉:語意化的整數常量集合

枚舉是使用者自訂的實值型別,本質上是一組具名的整數常量。宣告枚舉時,需指定其可接受的實例值集合,讓程式碼更具可讀性與型別安全。

基本宣告與使用

public enum UserRole
{
    Guest = 0,
    Member = 1,
    Admin = 2
}

此處 UserRole 為枚舉型別,Guest、Member、Admin 為其成員,分別對應整數 0、1、2。使用時可直接轉型:

int roleValue = (int)UserRole.Admin; // 輸出 2

枚舉的進階特性

枚舉在底層繼承自 System.Enum,因此可呼叫其方法。例如 UserRole.Member.ToString() 會回傳字串 "Member",而非數值,極大提升了除錯與日誌記錄的可讀性。

二、陣列:固定大小的同質資料容器

陣列是儲存相同型別元素的固定大小集合,屬於參考型別,儲存於 managed heap。

宣告與初始化

// 宣告未初始化
int[] scores;

// 宣告並指定長度 20
int[] scores = new int[20];

// 宣告並直接賦值
string[] names = { "Alice", "Bob", "Charlie" };

注意:所有陣列皆為參考型別,變數儲存的是記憶體位址。本文僅作基礎介紹,進階操作(如多維陣列、陣列排序、與集合互轉)將於後續專文詳細探討。

三、命名空間:避免型別名稱衝突的邊界

命名空間是組織型別的邏輯容器,解決大型專案或團隊協作中類別名稱衝突的問題。

實戰範例

namespace CompanyA
{
    public class User { public string GetName() => "CompanyA User"; }
}

namespace CompanyB
{
    public class User { public string GetName() => "CompanyB User"; }
}

// 使用時以完整名稱區分
var userA = new CompanyA.User();
var userB = new CompanyB.User();

兩個 User 類別同名但隸屬不同命名空間,編譯與執行皆無衝突。

using 指令與別名

若命名空間層級較深,可用 using 簡化:

using Sys = System;  // 別名
using CompanyA;      // 直接引入,後續可直接寫 User

慣例上,專案命名空間常採用公司域名倒序(如 Com.CompanyName.Project),確保全域唯一性。

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