2012-04-30 35 views
0

我想用C#開發一個計算器。我一直在編程Perl。在Perl中,我可以通過以下方式使用string evalC#中的計算器像Perl中的那樣

while(<STDIN>) { 
    $i = $_; chomp($i); unless($i) { last } 
    $o = eval($i); print "$i = $o\n"; 
} 

有了這個代碼,我可以輸入:

  1. (2 + 2 + 2)* 5個
  2. COS(5)
  3. sqrt(4)

它認識了很多不同的表達式。

我不是很熟悉C# - 所以我的問題是:

可我只是在C#中,而不是Perl的做一些像上面?

+0

作弊方法,使用'eval' :) – gaussblurinc

+3

高爾夫:'perl的-ple'$ _ = eval''; ) – TLP

+4

什麼是用戶類型'system「rm -rf /」'? –

回答

2

不幸的是,不是直線的方式做它和Perl一樣,因爲C#是編譯語言,它不能即時解釋烴源代碼字符串。 所以,你至少有兩種選擇:

希望這有助於爲計算

+0

Thx回覆:D – Diemauerdk

+0

Perl也被編譯。 C#無法做到這一點與編譯沒有任何關係。 – ikegami

+0

@ikegami。來自維基百科:「Perl是一種高級的,通用的,解釋性的,動態的編程語言」,「Perl作爲核心解釋器實現,用C語言編寫,還有大量模塊集合」。所以,就像每一位現代口譯人員一樣,它在飛行中編譯,這就是爲什麼它具有執行評估的「能力」的原因。正如維基百科解釋的那樣,編譯和執行階段是重疊的。 – 2012-05-01 01:16:16