Maison > développement back-end > C++ > Comment puis-je réaliser une évaluation de code dynamique en C # comme `EVA () 'de JavaScript?

Comment puis-je réaliser une évaluation de code dynamique en C # comme `EVA () 'de JavaScript?

Barbara Streisand
Libérer: 2025-01-28 05:51:09
original
434 Les gens l'ont consulté

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

Implémentez l'exécution de code dynamique en C #

Cet article explique comment exécuter dynamiquement le code en C #, similaire à la fonction

en JavaScript.

eval() Description du problème

Supposons que vous ayez une variable entière et plusieurs attributs appelés "Property1", "Property2", "Property3" et d'autres attributs. Selon la valeur , vous souhaitez effectuer des opérations sur l'attribut "Property

i

" correspondant. Utilisez i dans JavaScript pour terminer facilement cette tâche, mais comment l'atteindre en C #? i Solution utilisant l'API de script Roslyn eval()

L'API de script Roslyn fournit une solution pour l'évaluation du code dynamique en C #. Il contient un ensemble de classes qui vous permettent d'exécuter le code C # au moment de l'exécution.

Exemple de code

Pour évaluer les expressions simples, utilisez

Méthode:

Pour un code plus compliqué, vous pouvez utiliser la méthode

:

EvaluateAsync()

Ensuite, vous pouvez appeler
// 添加NuGet包 'Microsoft.CodeAnalysis.Scripting'
using Microsoft.CodeAnalysis.CSharp.Scripting;

await CSharpScript.EvaluateAsync("System.Math.Pow(2, 4)"); // 返回16
Copier après la connexion
continuer à exécuter le code:

RunAsync()

Cela vous permet d'exécuter dynamiquement le code C # et d'interagir avec l'objet généré.
var script = await CSharpScript.RunAsync(@"
class MyClass
{ 
    public void Print() => System.Console.WriteLine(1);
}");
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal