Calculadora em 5 minutos

17 12 2008

Resolvi plagiar a idéia do camarada Hubão de fazer uma calculadora em 5 minutos,

ele fêz em Python, eu vou fazer uma semelhante a dele só que em C# usando Mono…

Ficam algumas observações:

A implementação da classe Evaluator do mono ainda não está concluída e tem alguns bugs… bem não sei se é bug mas ele não avalia expressões onde tem multiplicação no meio e também não descobri como faz pra retornar o resultado da operação como um Double em vez de int.

Na verdade essa classe não é um simples avaliador, é praticamente um compilador/interpretador de instruções que pode ser embutido no programa para avaliar instruções como se fossem scripts, inclusive alterando o valor de variáveis internas como no exemplo abaixo onde a avaliação da string altera o valor da variável do programa:

using Mono.CSharp;
using System.Reflection;
using System;

namespace CSharpEvalTest
{
  public class Test
  {
    public static int val = 1000;

    static void Main(string [] args)
    {
      Evaluator.Run(
        "using System; using CSharpEvalTest;");

      Evaluator.ReferenceAssembly(
        Assembly.GetExecutingAssembly());

      Evaluator.Run("Test.val = 120;");
      Console.WriteLine("val is {0}", val);
    }
  }
}

fonte: http://codicesoftware.blogspot.com/2008/11/c-evaluator.html

vai demorar um pouco pra encontrar isso no .net da Microsoft, OpenSource Rox :)


Ações

Informações

Uma resposta

18 12 2008
Rodrigo Hübner

hauahuaha … boa! Eu perdi mais tempo no glade do que no código! você foi o contrário! :D
Acabei implementando o método “sair” para não deixar o processo em aberto quando fechado no “X”, e o evento de calcular quando é apertado o enter!

Mas valeu! 5 minutos… Essa moda pega!

Deixe um comentário