1///2
///本類用來將字串轉為可執行文字並執行
3///
做了一部分修改,修改原來的錯誤,修改,增加了部分邏輯。測試通過,請勿隨意修改 zhangqc
4///
5public
class
evaluator618
///19
///可執行串的建構函式
20///
21///
返回值型別
22///
執行表示式
23///
執行字串名稱
24public evaluator(type returntype, string expression, string
name)25;
28 constructevaluator(items); //
呼叫解析字串建構函式進行解析29}
30///
31///
可執行串的建構函式
32///
33///
可執行字串項
34public
evaluator(evaluatoritem item)
35;//
將可執行字串項轉為可執行字串項陣列
37 constructevaluator(items); //
呼叫解析字串建構函式進行解析38}
3940
///41
///解析字串建構函式
42///
43///
待解析字串陣列
44///
這個表示,你的字串中是否需要在上return,false表示你不需要加,true代表你需要加上return
45private
void constructevaluator(evaluatoritem items,bool isreturn=false)46
() ", //
新增定義公共函式**
72 item.returntype.name, //
函式返回值為可執行字串項中定義的返回值型別
73 item.name); //
函式名稱為可執行字串項中定義的執行字串名稱
" : "
return ();
", item.expression);
}\n"); //
新增函式結束括號77}
} }"); //
新增類結束和命名空間結束括號
79//
得到編譯器例項的返回結果
80 compilerresults cr =comp.compileassemblyfromsource(cp, code.tostring());
81if (cr.errors.haserrors) //
如果有錯誤
82/n
", err.errortext); //
新增進錯誤文字,每個錯誤後換行88}
89throw
new exception("
編譯錯誤:
" + error);//
丟擲異常90}
91 assembly a = cr.compiledassembly; //
獲取編譯器例項的程式集
92 _compiled = a.createinstance("
esic.rfq.common.evaluatorextend._evaluator
"); //
通過程式集查詢並宣告 esic.rfq.common.evaluatorextend._evaluator 的例項93}
94#endregion
95#region 公有成員
96///
97///
執行字串並返回整型值
98///
99///
執行字串名稱
100///
執行結果
101public
int evaluateint(string
name)
102105
///106
///執行字串並返回字串型值
107///
108///
執行字串名稱
109///
執行結果
110public
string evaluatestring(string
name)
111114
///115
///執行字串並返回布林型值
116///
117///
執行字串名稱
118///
執行結果
119public
bool evaluatebool(string
name)
120123
///124
///執行字串並返 object 型值
125///
126///
執行字串名稱
127///
執行結果
128public
object evaluate(string
name)
129133
#endregion
134#region 靜態成員
135///
136///
執行表示式並返回整型值
137///
138///
要執行的表示式
139///
運算結果
140public
static
int evaluatetointeger(string
code)
141145
///146
///執行表示式並返回字串型值
147///
148///
要執行的表示式
149///
運算結果
150public
static
string evaluatetostring(string
code)
151155
///156
///執行表示式並返回布林型值
157///
158///
要執行的表示式
159///
運算結果
160public
static
bool evaluatetobool(string
code)
161165
///166
///執行表示式並返回 object 型值
167///
168///
要執行的表示式
169///
運算結果
170public
static
object evaluatetoobject(string
code)
171175
#endregion
176#region 私有成員
177///
178///
靜態方法的執行字串名稱
179///
180private
const
string staticmethodname = "
__foo";
181///
182///
用於動態引用生成的類,執行其內部包含的可執行字串
183///
184object _compiled = null
;185
#endregion
186}
187188
189///
190///
可執行字串項(即一條可執行字串)
191///
192public
class
evaluatoritem
193218 }
python將字串轉為矩陣
將字串轉換為矩陣,分為四步 將字串切分為乙個list d 2 3 4 5 6 8 1 2 dlist d.strip split 將list中的 轉換為 dint map int,dlist 將list轉換為array darr np.array dint 將array陣列轉換為矩陣,這裡轉為乙個三...
Python 將字串轉為字典
在工作中遇到乙個小問題,需要將乙個python的字串轉為字典,比如字串 user info 我們想把它轉為下面的字典 user dict 有以下幾種方法 import json user info user dict json.loads user info user dict 但是使用json進行...
react將字串轉為標籤
react不支援直接將字串放到render返回值中,這樣放入的字串會被當做一般字串處理。123 4567 8const str test return 該元件中的str會被當做字串處理,直接在頁面中顯示出來。react有乙個專門的屬性叫dangerouslysetinnerhtml是用於處理這種情況...