Heim > Backend-Entwicklung > C++ > Wie kann ich eine dynamische Code -Bewertung in C# wie JavaScripts `eval ()` erreichen?

Wie kann ich eine dynamische Code -Bewertung in C# wie JavaScripts `eval ()` erreichen?

Barbara Streisand
Freigeben: 2025-01-28 05:51:09
Original
436 Leute haben es durchsucht

How Can I Achieve Dynamic Code Evaluation in C# Like JavaScript's `eval()`?

Implementieren Sie die dynamische Codeausführung in C#

In diesem Artikel wird erläutert, wie der Code in C#dynamisch ausgeführt wird, ähnlich der

-Funktion in JavaScript.

eval() Problembeschreibung

Angenommen, Sie haben eine Ganzzahlvariable und mehrere Attribute, die als "Property1", "Property2", "Property3" und andere Attribute bezeichnet werden. Nach dem Wert möchten Sie Operationen für das entsprechende Eigenschaft "Eigenschaft

i

" ausführen. Verwenden Sie i in JavaScript, um diese Aufgabe einfach zu erledigen, aber wie kann man sie in C#erreichen? i Lösung mit der Roslyn -Skript -API eval()

Roslyn Skript -API bietet eine Lösung für die dynamische Codebewertung in C#. Es enthält eine Reihe von Klassen, mit denen Sie zur Laufzeit den C#-Code ausführen können.

Beispielcode

Um einfache Ausdrücke zu bewerten, verwenden Sie

Methode:

Für komplizierteren Code können Sie

Methode verwenden:

EvaluateAsync()

Dann können Sie
// 添加NuGet包 'Microsoft.CodeAnalysis.Scripting'
using Microsoft.CodeAnalysis.CSharp.Scripting;

await CSharpScript.EvaluateAsync("System.Math.Pow(2, 4)"); // 返回16
Nach dem Login kopieren
weiter aufrufen, um den Code weiter auszuführen:

RunAsync()

Ermöglicht Ihnen dynamisch den C#-Code und interagiert mit dem generierten Objekt.
var script = await CSharpScript.RunAsync(@"
class MyClass
{ 
    public void Print() => System.Console.WriteLine(1);
}");
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich eine dynamische Code -Bewertung in C# wie JavaScripts `eval ()` erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage