Maison >développement back-end >C++ >Comment puis-je convertir une fonction C# en expression ?
Conversion de C# Func
En C#, les expressions lambda offrent un moyen pratique de représenter des fonctions légères. Bien qu'il soit simple de convertir un lambda en un Expression
Le défi
Cependant, une telle conversion directe n'est pas possible en raison d'une erreur de compilation, comme illustré dans le code suivant :
public void ContainTheDanger(Func<T> dangerousCall) { try { dangerousCall(); } catch (Exception e) { // This next line does not work... Expression<Func<T>> DangerousExpression = dangerousCall; var nameOfDanger = ((MemberExpression)dangerousCall.Body).Member.Name; throw new DangerContainer("Danger manifested while " + nameOfDanger, e); } }
L'erreur vient du fait que Func
Limitations
Malheureusement, il n'existe aucun moyen simple d'obtenir la conversion souhaitée. Tentative d'obtenir l'expression originale à partir d'un Func
Approches alternatives
Comme alternative, on peut envisager :
Cependant, ces approches impliquent généralement des et des techniques sujettes aux erreurs.
Conclusion
Conversion une fonction
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!