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

模擬字串型別列舉(一):需求分析與基本架構

     編輯:關於C語言

問題背景

.NET 列舉底層型別僅支援整數型別,無法直接定義字串列舉:

// 編譯錯誤
enum Colors : string { Red = "#FF0000" }

模擬策略

  1. 建立 Color 類別,建構子設為 private。
  2. 暴露 static readonly 欄位作為列舉成員:Red、Green、Blue。
  3. 實作明確轉換運算子:explicit operator string(Color)、explicit operator Color(string)。

基本架構程式碼

public class Color
{
    private Color(string value) { m_Value = value; }
    private string m_Value;

    public static readonly Color Red = new Color("#FF0000");
    public static readonly Color Green = new Color("#00FF00");
    public static readonly Color Blue = new Color("#0000FF");

    // 轉換運算子與 Equals 處理見下篇
}

使用方式

Color c1 = Color.Red;
string s1 = (string)c1; // "#FF0000"
Color c2 = (Color)"#00FF00"; // Color.Green
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved