程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 與動態執行的C#代碼進行通訊(2)

與動態執行的C#代碼進行通訊(2)

編輯:關於C語言

編譯執行後就得到一個傻傻的 C# 代碼解析器,也可以當一個簡單的計算器用:

3、解釋器與所解釋的代碼之間進行變量交互

如果將所解釋的代碼中的某些變量儲存下來,供給以後的代碼用,這一解釋器的功能又會強大很多。 假設這類變量名稱以$打頭,如:

$myblogname = “http://xiaotIE.cnblogs.com”

將在解釋器環境中定義(如果該變量未存在)或賦值於(如果該變量已存在)一個名為 myblogname 的字符串變量,指向字符串“http://xiaotIE.cnblogs.com”。而,System.Console.WriteLine ($myblogname)則取出並打印出字符串該變量所引用的。

簡單說來,也就是讓所解釋的代碼中能夠初始化並引用解釋器中的變量。

如何實現呢?這是本文的重點。

首先,在 Context 類中定義一個SortedDictionary儲存變量,並提供索引訪問:

    public SortedDictionary<String, Object> Instances { get; set; }
     public Object this[String instanceName]
     {
       get
       {
         if (Instances.ContainsKey(instanceName))
         {
           return Instances[instanceName];
         }
         else
         {
           return null;
         }
       }
       set
       {
         if (Instances.ContainsKey(instanceName))
         {
           Instances.Remove(instanceName);
         }
         Instances.Add(instanceName, value);
       }
     }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved