08. august 2007 - 18:35Der er
13 kommentarer og 1 løsning
Regnemaskine som kan regne med mere end 2 værdier
Jeg er meget ny til C#. Jeg prøver at lave en regnemaskine, og den virker også fint, dog kan jeg kun regne med 2 værdier. Dvs. jeg kan fx sige 2+2, men ikke 2+2+2. Nogle der kan hjælpe med det?
Det ville også være rart hvis der var noget try/catch sætninger, så man fx ikke kan skrive bogstaver, klikke på = tegnet når der ikke er indført tal m.m.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms;
namespace Regnmaskine { public partial class Form1 : Form {
Her er en 3. mulighed (som dog smager lidt af arne_v's mulighed nr. 2).
===== Klassen Eval =====
using System; using System.CodeDom.Compiler; using System.Reflection; using Microsoft.CSharp;
namespace e790825 { class Eval<T> { public Eval(string expression) { CreateAssembly(expression); ReflectOnAssembly(); }
private T _value; public T Value { get { return _value; } }
private Assembly _evalAssembly;
private void CreateAssembly(string expression) { string codeTemplate = @"using System; class EvalClass { public static TYPE EvalMethod() { return EXPRESSION; } }";
// Indsæt retur-type og expression på det rigtige sted i kode-skabelonen. string code = codeTemplate.Replace("TYPE", typeof(T).ToString()); code = code.Replace("EXPRESSION", expression);
// Opret en compiler instans. CSharpCodeProvider provider = new CSharpCodeProvider();
// Parametre til compileren. CompilerParameters cp = new CompilerParameters(); cp.GenerateExecutable = false; // Lav en DLL ... cp.GenerateInMemory = true; // ... i memory (istedet for disk) cp.TreatWarningsAsErrors = false;
Ja, fordi jeg har kun snuset lidt til java script (copy-paste stil), samt c# er meget nyt for mig, så vil helst ikke blande det sammen da det var en skoleopgave.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.