Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
例えば:
Validate("items.Select(item => item.ToLower())")
True を返しますが、
Validate("var n=5;")
False を返します。
コンテキストは、ユーザーがラムダ式を介してデータを操作できるようにするアプリケーションを作成したいということです。ユーザーが有効なラムダ式を入力すると、プログラムはそれを実行します。そうでなければ、失敗するはずです。
シンプルに保ち、実行することをお勧めします。有効でない場合は、数ミリ秒後に失敗します。
また、構文的には有効であるが別の理由で失敗する式も扱います。
このアプローチを選択した場合は、Dynamic Linq ライブラリを使用するだけで済みます。