2016-03-22 22 views
1

私はC#.Netを使用してWindowsフォームでテキストボックスを作成したいと思います。これは簡単な計算を処理できます。たとえば、ユーザがテキストボックス=5*7に書き込み、次にテキストボックスが有効になると、textbox.Text = 35が入力されます。計算式を含むテキストボックス

私の質問は、文字列"=5*7"doublesと記号に変換して計算する方法です。

+2

にそれを使用する方法をここでCodeAnalysis.CSharp.Scriptingライブラリを使用://stackoverflow.com/questions/355062/is-there-a-string-math-evaluator-in-net)。 –

+0

@ AlessandroD'Andriaこれは私が探していたものです! – Charitini

+0

これは重複しているかもしれませんが、その投稿の回答はCSharp.Scriptingを提案していません。これは、いずれかの優れた解決策です。 – Crowcoder

答えて

0

これにはCodeAnalysis.CSharp.Scriptingライブラリを使用できます。

<パッケージID = "Microsoft.CodeAnalysis.Analyzers" バージョン= "1.1.0" targetFramework = "net461"/> <パッケージID = "マイクロソフト:それはavailable from Nuget

using Microsoft.CodeAnalysis.CSharp.Scripting; 
using System; 

namespace ExpressionParser 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      //Demonstrate evaluating C# code 
      var result = CSharpScript.EvaluateAsync("System.DateTime.Now.AddDays(-1) > System.DateTime.Now").Result; 
      Console.WriteLine(result.ToString()); 

      //Demonstrate evaluating simple expressions 
      var result2 = CSharpScript.EvaluateAsync(" 5 * 7").Result; 
      Console.WriteLine(result2); 
      Console.ReadKey(); 
     } 
    } 
} 

nugetパッケージです。 CodeAnalysis.Common "バージョン= "1.1.1" targetFramework = "net461"/ > <パッケージID = "Microsoft.CodeAnalysis.CSharp" バージョン= "1.1.1" targetFramework = "net461"/ > <パッケージID =" Microsoft.CodeAnalysis.CSharp.Scripting "verシオン= "1.1.1" targetFramework = "net461" = "1.1.1" targetFramework = "net461"/> <パッケージID = "Microsoft.CodeAnalysis.Scripting" バージョン/ > <パッケージID = "Microsoft.CodeAnalysis。 Scripting.Common」バージョン= "1.1.1" targetFrameworkは= "net461"/>

+0

私は 'Microsoft.CodeAnalysis.CSharp.Scripting 1.1.1'というナゲットパッケージを含めようとしましたが、' Microsoft.CodeAnalysis.CSharp.Scripting'という名前空間は含まれていませんので、私のマシンでは例はコンパイルされません。それは見えるように、 'CSharpScript'は存在しません。これで光を当ててください。 – Matt

+0

@Matt Nugetパッケージの編集を参照してください。 – Crowcoder

+0

ありがとうございます。空のコンソールプロジェクトにパッケージを追加し、コードを挿入しました。キーは、nugetパッケージを追加する前に4.6.1にフレームワークのバージョンを変更することです - 私の場合、フレームワークのデフォルト設定は4.5.2で、動作しませんでした(何かをインポートしようとしましたが失敗しました)。その変更の後、即座に機能しました。 – Matt

2

[SO質問](HTTPこれを見てみましょうwiki

関連する問題