Entwickler-Ecke
C# - Die Sprache - Char verändern ohne zuweisung sondenr mit addition
Spiritnight - So 16.03.08 14:20
Titel: Char verändern ohne zuweisung sondenr mit addition
Hallo alle zusammen,
ich habe leider vergeblich danach gesucht und hoffe hier eine kurze und präzise Antworte auf eine wahrscheinlich wirklich dumme Frage zu bekommen.
Mein Ziel ist es:
zu ändern ohne neue zuweisung:
Jeder Buchstabe hat einen festen Zahlenwert und genau diesen möchte ich ändern:
Sprich "a" 141 sein.
Nun möchte ich mit möglichst einfacher Syntax 4 dazuaddieren.
Das Variable Buchstabe "e" wird.
buchstabe=buchstabe+4; wird nix.
Ich weiss die Frage ist sicherlich nicht anspruchsvoll aber sind leider sie kleinen Dinger die mich zur verzweiflung bringen.
Vielen Dank im voraus für jeden Tip
MFG Martin
Moderiert von
Christian S.: C#-Tags hinzugefügt
JüTho - So 16.03.08 16:17
Hallo Martin,
der entscheidende Punkt ist, dass NET und damit auch C# ganz genau auf die verwendeten Typen achtet. Deshalb ist schon Dein erstes Beispiel falsch:
Du mischst hier einen char und einen string:
| Zitat: |
| Fehler CS0029: Der Typ string kann nicht implizit in char konvertiert werden. |
Genauso sind char und int nicht direkt kompatibel:
C#-Quelltext
1:
| buchstabe=buchstabe+4; |
| Zitat: |
| Fehler CS0031: Der Konstantenwert 4 kann nicht in char konvertiert werden. |
Stattdessen musst Du explizit die gewünschte Konvertierung angeben, z.B. so:
C#-Quelltext
1: 2:
| char buchstabe = 'c'; buchstabe = (char)((int)buchstabe + 4); |
| Zitat: |
| Jeder Buchstabe hat einen festen Zahlenwert und genau diesen möchte ich ändern: |
Bitte gewöhne Dir typengenaues Arbeiten an; dann kommst Du normalerweise nicht auf solche Wünsche. Ein char ist ein Zeichen, und mit dessen Zahlenwert ist selten zu rechnen. (Natürlich gibt es solche Situation, dafür gibt es passende Umwege; hier geht es um den Grundsatz.)
Jürgen
Spiritnight - So 16.03.08 18:50
Titel: Vielen lieben Dank
Ich bin Dir über aus dankbar,
ich wurde in C und C++ ausgebildet C Sharp mache ich gerade als Hobby,
und bin sehr begeistert:
Klassen, methoden und die ganze höhere Schule sind kein Problem ich verhacke mich nur an den Kleinigkeiten...macht mich wahrscheinlich zum schlechten programmierer ^^.
Nochmal vielen Dank aus Deinem Beispiel konnte ich mein Symtax ableiten:
C#-Quelltext
1:
| cache[1] = (char)((int)cache[1] + 20); |
| Zitat: |
| Bitte gewöhne Dir typengenaues Arbeiten an; dann kommst Du normalerweise nicht auf solche Wünsche. Ein char ist ein Zeichen, und mit dessen Zahlenwert ist selten zu rechnen. (Natürlich gibt es solche Situation, dafür gibt es passende Umwege; hier geht es um den Grundsatz.) |
Das ist mir durchaus bewußt und sei versichert es ist eine Ausnahme.
Mfg Martin
Moderiert von
Christian S.: Highlight- durch Quote-Tags ersetzt; C#-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!