0

C#で電卓を開発したいです。私はPerlを少しプログラミングしています。Perl では、文字列 evalを次のように使用できます。

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

このコードでは、次のように入力できます。

  1. (2+2+2)*5
  2. cos(5)
  3. 平方根(4)

さまざまな表現を認識します。

私は C# にあまり詳しくないので、私の質問は次のとおりです。

Perl の代わりに C# だけで上記のようなことを行うことはできますか?

4

2 に答える 2

2

残念ながら、Perl のように直接的に行う方法はありません。C# はコンパイル済み言語であるため、ソース コード文字列をオンザフライで解釈することはできません。したがって、少なくとも 2 つの選択肢があります。

  • http://flee.codeplex.comまたはhttp://ncalc.codeplex.comのような式エバリュエーターを使用します 。codeproject.com には、「式エバリュエーター」というフレーズを検索する方法もたくさんあります。

    • C# 4.0 動的メソッド (http://msdn.microsoft.com/en-us/library/exczf7b9.aspx) を使用して、オンザフライでコード スニペットをコンパイルして実行します。ここに既製のケースがあります: http://www.360doc.com/content/07/0314/20/8309_397508.shtml

お役に立てれば

于 2012-04-30T09:36:11.360 に答える
1

はい、確かにこれを行う方法のオプションがあります。たとえば、これを見てください:

http://www.c-sharpcorner.com/UploadFile/mgold/CodeDomCalculator08082005003253AM/CodeDomCalculator.aspx

于 2012-04-30T09:23:21.270 に答える