Entwickler-Ecke

C# - Die Sprache - consanw.: kann man adition durch eine variable rechenen?


CanPolat - Do 14.05.09 18:57
Titel: consanw.: kann man adition durch eine variable rechenen?
ich meine so etwas in der art:


C#-Quelltext
1:
2:
3:
4:
5:
6:
            string pl = "+";
            int a = 1;
            int b = 2;
            int c = a pl b; // das soll "c=1+2" bedeuten.
            Console.WriteLine(c);
            Console.Read();


ich weis das das totaler murks ist aber vill gibt es ja eine andere möglichkeit^^

mfG CanPolat


jaenicke - Do 14.05.09 19:08

Schreib einfach das + hin wie du es in dem Kommentar geschrieben hast, wo ist das Problem? Dann steht in c 3 drin (1+2). :gruebel:


JüTho - Do 14.05.09 19:10

Naja, wenn überhaupt, dann so:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
switch(p1)
{
    case "+"
        c = a + b;
        break;
    // usw.
}

Jürgen


jaenicke - Do 14.05.09 19:11

Ach, die erste Zeile habe ich übersehen. :oops:
Ja, da muss man das natürlich unterscheiden.


CanPolat - Do 14.05.09 19:13

x=)

das habe ich ja schon mit switch/case gemacht aber ich wollte es einfach nur etwas vereinfachen^^

zB wenn ich eine auswahl von +, -, * und / mache, will ich dass der das einfach ausrechnen soll^^


JüTho - Do 14.05.09 20:21

Überleg doch einmal, was mit deinem Code passieren soll: Du schreibst irgendetwas in den Quellcode, der C#-Compiler muss das interpretieren und in IL übersetzen, der JIT-Compiler muss daraus Maschinencode machen. Beide Compiler müssen doch genau wissen, was aus deinem Code werden soll, damit der PC-Arbeitsspeicher das verarbeiten kann. Eine Addition wird dort eben anders behandelt als eine Division; diesen Unterschied musst du bereits im Code berücksichtigen.

Außerdem musst du doch auch berücksichtigen, wenn jemand eine Operation wie ";" eingeben will. Was für eine Rechenoperation sollen die Compiler daraus machen?

Also bitte denke zuerst richtig nach und verschone uns mit solchen "Vereinfachungen". Jürgen


CanPolat - Do 14.05.09 20:50

ok danke


---

---

@JüTho:

ich will es nur mal wissen und nicht nur auf dich losgehen: bist du einfach nur von mir generft oder ist das dein standard Ausdruck?
weil das was du schreibst sich immer so hart anhört:( langsamm glaube ich dass ich hir nicht wirklich wilkommen bin:(

wie gesagt: willst nur mal wissen, nicht böse sein;)


JüTho - Fr 15.05.09 09:02

user profile iconCanPolat hat folgendes geschrieben Zum zitierten Posting springen:
bist du einfach nur von mir generft oder ist das dein standard Ausdruck?

Ich bin von dir etwas genervt.

Ich bemühe mich, Anfängern gegenüber nachsichtig zu sein; aber das gelingt mir nicht immer, vor allem dann nicht, wenn ich durch Nachfragen und Anmerkungen den Eindruck gewinne, dass das Mitdenken fehlt.

Ich wurde auch schon von Moderatoren wegen meines Tonfalls gerügt und kann nur Besserung geloben. Aber wie gesagt: ich erwarte Mitdenken!

Nicht böse sein! Jürgen


CanPolat - Fr 15.05.09 21:08

da sag ich mal folgendes zu:

bevor ich hir meine frage stelle überlege ich erst 10mal selber drarüber nach, teste selbst mit den verrücktesten methoden näher zu kommen, schaue in msdn, openbook(mit der suchfunktion des browsers), google, und wenn ich in der schule bin, meinen info lehrer (wobei ich den sowieso schon mit c# überhohlt habe xD, da er damit auch erst neulich angefangen hat;)), zusätzlich versuche ich mein vorhaben zu umgehen (fals ich nicht gerade eine bestimmte funktion suche) und natürlich noch den internen index suchfunktion von c#.

dazu kommt dass mein "textverständniss" nicht besonders gut ist(nebenbei gesagt: meine rechtschreibung ist auch net besonders gut, wie Ihr es bestimmt schon bemerkt habt^^), so dass ich nicht auf anhib alles verstehen kann.
da ich gerade mein Fachabitur nachhohle und leider schwechen in deutsch und englich habe bleibt mir auch kaum freizeit so dass ich nur langsam fortschritte machen kann>.<

aber das OpenBook [http://openbook.galileocomputing.de/visual_csharp/] bin ich schon am abarbeiten und benutze auch sehr heufig das msdn [http://msdn.microsoft.com/de-de/vcsharp/default.aspx]

---
hoffe dass du jetzt ein etwas anderen eindruck von mir hast;)

mfG:CanPolat


Greenberet - Sa 16.05.09 10:15

user profile iconCanPolat hat folgendes geschrieben Zum zitierten Posting springen:
ich meine so etwas in der art:


C#-Quelltext
1:
2:
3:
4:
5:
6:
            string pl = "+";
            int a = 1;
            int b = 2;
            int c = a pl b; // das soll "c=1+2" bedeuten.
            Console.WriteLine(c);
            Console.Read();


ich weis das das totaler murks ist aber vill gibt es ja eine andere möglichkeit^^

mfG CanPolat

Auch wenn ich jetzt bestimmt Haue von allen anderen Forumteilnehmern aber Zeile 4 ist Möglich...
Nebenbei bemerkt der Aufwand den ich dir jetzt gleich Zeig ist um vieles Größer als die Switch/Case Variante. Abgesehen davon hast du durch die Folgende Variante sehr viele möglichen security Probleme. Aber schau dir einfach mal folgende Klasse an Microsoft.CSharp.CSharpCodeProvider [http://msdn.microsoft.com/en-us/library/microsoft.csharp.csharpcodeprovider.aspx]. Ab C# 4.0 wird das übrigens eine Spur einfacher werden. Es gibt da ein Video(link leider nicht bei Hand) wo M$ gezeigt hat dass man C# auch als Scriptsprache verwenden kann indem sie zur Laufzeit wirklich C# Code compiliert und aufgerufen haben.

-Green