demo-repl.zipファイルをMiguel de Icaza's web siteからダウンロードしました。Mono.CSharp.dllに問題がありますか何かがありません
私は特定のプログラムを構築しようとしていましたが、すべてが失敗しています。私は単純なコンソールアプリケーションです。
ケース1:条件に基づいて名前を印刷します。これはよくに
static void Main(string[] args)
{
Evaluator.Run("using System;");
Evaluator.Run("using System.Linq;");
Evaluator.Run("using System.Collections.Generic;");
string dynamicQuery = ReplaceQuotes("List<string> names = new List<string> {'name1','name2','some thing else} ;");
dynamicQuery += ReplaceQuotes("foreach(string name in names)");
dynamicQuery += ReplaceQuotes("if(name.Contains('name'))");
dynamicQuery += "Console.WriteLine(name);";
Evaluator.Run(dynamicQuery);
Console.ReadLine();
}
private static string ReplaceQuotes(string str)
{
return str.Replace("'", "\"");
}
}
ケース2の作品:LINQと同じことをしようとするとされ、実行時に
string dynamicQuery = ReplaceQuotes("List<string> names = new List<string> {'name1','name2','some thing else'} ;");
dynamicQuery += ReplaceQuotes("var result = from name in names where name.Contains('name') select name;");
dynamicQuery += ReplaceQuotes("foreach(string name in result) Console.WriteLine(name);");
エラーを失敗し
{interactive}(1,109): error CS1935: An implementation of `Where' query expressio
n pattern could not be found. Are you missing `System.Linq' using directive or `
System.Core.dll' assembly reference?
{interactive}(1,149): error CS1579: foreach statement cannot operate on variable
s of type `object' because it does not contain a definition for `GetEnumerator'
or is not accessible
ケース3:ラムダと同じことをしよう
string dynamicQuery = ReplaceQuotes("List<string> names = new List<string> {'name1','name2','some thing else'} ;");
dynamicQuery += ReplaceQuotes("names.Where(i => i.Contains('name')).ToList().ForEach(i => Console.WriteLine(i));");
この時エラーは
{interactive}(1,83): error CS1061: Type `System.Collections.Generic.List<string>
' does not contain a definition for `Where' and no extension method `Where' of t
ype `System.Collections.Generic.List<string>' could be found (are you missing a
using directive or an assembly reference?)
ている私は、ネットで検索し、人々がSystem.Coreを含めるように求め、適切な名前空間をインポートしていることがわかりました。
私はすでに、これらの名前空間
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mono.CSharp;
はその後、どこで、なぜそれが何が間違っていますか?
同じエラーが発生しました –
私に電子メールを送ったら、私が持っているコードを送って、すべてを確認できるようにします。 –
jeff dot nevins at gmailドットコム。私は個人的にこの同じシナリオで成功しました。 (BTW、Mono.CSharpプロジェクトの最新版を入手してコンパイルすれば、おそらくこの問題も緩和されます)。以下を参照してください:http://www.mono-project.com/CSharp_Compiler(MCSの入手を参照) – Jeff