.NET での実行時の新しいコードのコンパイルと実行
ユーザー指定の方程式を処理するアプリケーションの開発では、計算効率の点で課題が生じる可能性があります。従来、これらの方程式は手動で解析されていたため、大量のデータを処理する際にオーバーヘッドが発生していました。より効率的な解決策には、実行時に方程式を関数に変換し、定数解析の必要性を排除することが含まれます。
これは .NET で可能ですか?
はい、コンパイルして実行します。実行時に新しいコードを実行することは、Microsoft.CSharp、System.CodeDom.Compiler、
例: メソッドのコンパイルと呼び出し
メソッドを使用してクラスをコンパイルし、実行するこの例について考えてみましょう。それ:
string sourceCode = @" public class SomeClass { public int Add42 (int parameter) { return parameter += 42; } }"; var compParms = new CompilerParameters { GenerateExecutable = false, GenerateInMemory = true }; var csProvider = new CSharpCodeProvider(); CompilerResults compilerResults = csProvider.CompileAssemblyFromSource(compParms, sourceCode); object typeInstance = compilerResults.CompiledAssembly.CreateInstance("SomeClass"); MethodInfo mi = typeInstance.GetType().GetMethod("Add42"); int methodOutput = (int)mi.Invoke(typeInstance, new object[] { 1 }); Console.WriteLine(methodOutput); Console.ReadLine();
利点:
以上が.NET は効率を向上させるために実行時に新しいコードをコンパイルして実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。