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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.