Eu usei dynamic
para avaliar expressões lógicas representadas em um gráfico de objeto, onde usar a palavra-chave dynamic
me permitiu ignorar amplamente os tipos de operandos.
Por exemplo, se meu gráfico de expressão fosse uma expressão aritmética com um operador de multiplicação (por exemplo, 12 * 1.3
), usaria dynamic
para armazenar os operandos 12
e 1.3
e dynamic
novamente para capturar o resultado da multiplicação.
Sem dynamic
eu seria forçado a lidar com tipos numéricos concretos ( int
/ long
/ decimal
/ float
, etc ...) e o código resultante incha. Minha solução dynamic
requer muito pouco código e é muito mais fácil de entender e manter.
Minha ideia inicial era transformar minhas expressões lógicas em trechos de Python ou Ruby, depois executar esses trechos por meio de IronPython ou IronRuby para avaliar o resultado. Pareceu-me tudo o que eu precisava do Python ou Ruby era a sua digitação dinâmica, por isso fiquei muito feliz em ver que dynamic
oferece digitação do tipo Python para C #.