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

仿 SQL 查詢分析器的 C# 計算器(四):記號物件類別層級與 TokenSymbol 實作細節

     編輯:關於C語言

這樣就把傳入的運算式字串表示成程式可識別的物件,再對這些記號物件處理,最終得到計算結果。本節僅介紹記號物件,下一篇詳細說明如何將運算式轉換成記號物件。

TokenRecord 類別層級實作

以乘法記號類別 TokenMultiply 為例:TokenMultiply 繼承 TokenArithmetic,TokenArithmetic 繼承 TokenSymbol,TokenSymbol 繼承 TokenRecord。

TokenSymbol 也是抽象類別,將部分重複設定實作,減少子類別重複代碼:

public abstract class TokenSymbol : TokenRecord
{
    public TokenSymbol(int Index, int Length) : base(Index, Length)
    { this.TokenValueType = typeof(double); }

    protected override void SetChildCount() { this.m_ChildCount = 2; }
    public abstract override void Execute();
}

TokenArithmeticSymbol 為完全抽象類別,僅為分類,無任何功能實作:

public abstract class TokenArithmeticSymbol : TokenSymbol
{
    public TokenArithmeticSymbol(int Index, int Length) : base(Index, Length) { }
    public abstract override void Execute();
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved