[C#] Fehler "Zu viele Zeichen im Zeichenliteral"

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von aggrosiv, 17. Januar 2009 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 17. Januar 2009
    Fehler "Zu viele Zeichen im Zeichenliteral"

    tag!

    soll ein programm zur notenberechnung schreiben.
    hier mal der code:

    Code:
    private void btnBer_Click(object sender, EventArgs e)
     {
     int zahl;
    
     zahl = Convert.ToInt64(txtPunkte.Text);
    
     if ((zahl < 0) || (zahl > 10))
     txtErg.Text = "ungültuge Punktzahl!";
     else
     {
     if ((zahl >= 7) && (zahl <= 10))
     txtErg.Text = "Der Test ist bestanden!";
     else
     txtErg.Text = "Der Test ist leider nicht Bestanden!";
     }
    
    
     switch(zahl)
     {
     [b]case '10': //hier der fehler[/b]
     txtNote.Text = "Sehr Gut (10 Punkte)";
     break;
     case '9':
     txtNote.Text = "Gut (9 Punkte)";
     break;
     case '8':
     txtNote.Text = "Befriiedigend (8 Punkte)";
     break; 
     case '7':
     txtNote.Text = "Genuegend (7 Punkte)";
     break;
     default:
     txtNote.Text = "Leider nicht genuegend Punkte erreicht";
     break;
     }
     }
    jedenfalls bekomme ich bei dem ersten case den fehler "Zu viele Zeichen im Zeichenliteral".

    was sagt mir das?
     

  2. Anzeige
  3. #2 17. Januar 2009
    AW: kleiner fehler

    Ich hab zwar noch nicht allzuviel in C# gemacht, doch soetwas wie:
    select case zahl;
    fehlt. Woher soll denn das Programm wissen welche Variable es untersuchen soll ;)
     
  4. #4 17. Januar 2009
    AW: kleiner fehler

    das sag ich ihm ja mit switch(zahl)
     
  5. #5 17. Januar 2009
    AW: kleiner fehler

    case "10" statt case '10'

    ' is für einen einzelnen Zeichen, " für Strings.
     
  6. #6 17. Januar 2009
    AW: kleiner fehler

    Da du aus dem Wert mittels des Convert Objekts eine Zahl machst
    zahl = Convert.ToInt64(txtPunkte.Text);

    musst du diese danach auch wie eine Zahl behandeln.

    Ich bin mir jetzt gerade nicht sicher, aber meine Meinung nach darf bei deinen Case Anweisungen kein Hochkommata hin, da es sich um eine Zahl handelt, er die Werte in Hochkommata aber wie ein Zeichen ließt, könnte die Fehlermeldung: Zuviele Zeichen im Zeichenliteral enstehen...


    So try this:
    Code:
    switch(zahl)
    {
    case 10:
    txtNote.Text = "Sehr Gut (10 Punkte)";
    break;
    
    // usw...
    
     
  7. #7 18. Januar 2009
    AW: Fehler "Zu viele Zeichen im Zeichenliteral"

    ja das war der fehler...vielen dank für die hilfe
     
  8. #8 18. Januar 2009
    AW: Fehler "Zu viele Zeichen im Zeichenliteral"

    ~closed~
     

  9. Videos zum Thema
Die Seite wird geladen...