2011-02-05 166 views
0

我想知道是否有實現下一個示例的方式:動態算術運算符

string tmp = "+"; 
int ans1 = 4 tmp 5; 
tmp = "+"; 
int ans2 = 4 tmp 5; 

感謝

+1

你爲什麼想這樣做?如果你想構建/解析表達式樹,有更好的方法。 – 2011-02-05 20:11:16

回答

0

在確切的是語法 - NO。使用一些其他語法(更接近C#) - 也許

0

這個主題由「表達式」調用,有很多關於它的示例。最好的一個here

好運

4

你可以做到這一點,至少:

MyOpType tmp = "+"; 
int ans1 = 4 & tmp & 5; 
tmp = "+"; // Could be any operator implemented by MyOpType 
int ans2 = 4 & tmp & 5; 

通過創建一個名爲MyOpType類具有隱含的運算符重載從string到它的自我。這也會導致運算符重載&返回一些運算符類型,它會丟失一個參數。

但是,我不建議做這樣的「黑客」,因爲它不清楚代碼的作用。此外,我相信有更好的方法來做你應該做的事情。所以,如果你解釋的背景下再我們可能會找到一個更好的解決辦法:)

我猜是這樣Result("+", 4, 5)將是更清潔和更容易實現。這引出了我的問題:你從哪裏獲得運營商?用戶?否則,肯定會找到更好的解決方案。如果你想要某種形式的「動態解釋」,那麼.Net Expressions trees可能會很有趣。

+0

感謝您的回答。 我有我從中desirialize的XML文件。 (數學問題) 我需要計算問題的結果。目前我通過4個醜陋的開關/外殼聲明來實現這個部分。因此我想知道如果我能更清楚地實施它。 (運營商變量是動態的,我避免開關/案例陳述)... 有什麼更好的解決方案? :) 謝謝 – Igal 2011-02-05 23:48:32