Autor Beitrag
Spiritnight
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: So 16.03.08 14:20 
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:

ausblenden C#-Quelltext
1:
char buchstabe="a";					


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 user profile iconChristian S.: C#-Tags hinzugefügt
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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:
user profile iconSpiritnight hat folgendes geschrieben:

ausblenden C#-Quelltext
1:
char buchstabe="a";					

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:
ausblenden 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: 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:
ausblenden 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 user profile iconChristian S.: Highlight- durch Quote-Tags ersetzt; C#-Tags hinzugefügt