Autor Beitrag
Verdun
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 09.02.08 19:37 
wie kann ich, wenn ich diese abfrage habe:
ausblenden C#-Quelltext
1:
2:
Console.WriteLine("Wollen sie ein weiteres Element einfügen? (J/N)");
char entscheidung = char.Parse(Console.ReadLine());


machen dass es egal ist ob man j, J, n bzw N eingibt?
benötige ich für das daurafu folgende if...

danke..

ps.: ja ich kann programmieren aber mir fällt der Befehl in C# nimmer ein -.-

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: Sa 09.02.08 19:44 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
ConsoleKeyInfo ki = Console.ReadKey();
char c = ki.KeyChar.ToUpper();
if (c == 'J') {
  ..
else if (c == 'N') {
  ..
}

Allgemeine Empfehlung: schau doch in der SDK-Doku nach, was es für Methoden bei einer Klasse gibt, z.B. Console, und welche Eigenschaften das Ergebnis enthält.

Jürgen
Verdun Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Sa 09.02.08 19:51 
Ja danke.... aber bei mir gibt es den Befehl ToUpper nicht!
ich programmiere mit Visual Studio 2005..
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 09.02.08 20:05 
Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
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 10.02.08 11:30 
user profile iconVerdun hat folgendes geschrieben:
ich programmiere mit Visual Studio 2005..

Ob Du mit Visual Studio 3000 oder mit #D oder mit Notepad oder einem eigenen Editor programmierst, ist hinsichtlich der verwendeten Klassen und Methoden völlig unwichtig. Alles kommt vom NET Framework. Da ist allenfalls interessant, ob es um 1.1 oder 2.0 oder 3.0 oder 3.5 geht.

user profile iconVerdun hat folgendes geschrieben:
Ja danke.... aber bei mir gibt es den Befehl ToUpper nicht!

Es geht nicht um einen Befehl, sondern um die Methode ToUpper(). Methoden werden unter C# (das ist die Programmiersprache) immer mit Klammern gekennzeichnet, um sie von Eigenschaften zu unterscheiden. (Was Befehle sind, kannst Du über den Index der SDK-Doku erkennen.) Die SDK-Doku ist sowieso das wichtigste Hilfsmittel - vor allen Foren.

Die folgende Erläuterung kannst Du selbst über die SDK-Doku herausfinden. Es ist wirklich nicht angebracht, mit solchen primitiven Problemen ein Forum zu belasten (zumal bei dem nach wie vor sehr aussagefähigen Titel):
  • Die Console-Klasse bietet für das Abrufen eines einzelnen Zeichens die Methode ReadKey().
  • Der Rückgabewert dieser Methode ist vom Typ ConsoleKeyInfo. Dessen Eigenschaft KeyChar ist vom Typ char.
  • Die Char-Struktur bietet u.a. die Methode ToUpper():
    Zitat:
    Konvertiert den Wert eines Unicode-Zeichens in den entsprechenden Großbuchstaben.

Also ist alles vorhanden und scheint korrekt zu sein. Zumindest ist Deine Fehlerbeschreibung "bei mir gibt es den Befehl ToUpper nicht" so nicht richtig. Aber siehe da - dies ist eine statische Methode; also ist meine Umsetzung falsch. "Statisch" bedeutet: sie gehört generell zur Klasse Char, nicht zu einem bestimmten Element c. Die Fehlerbeschreibung bedeutet also: "in Bezug auf das Element c gibt es ToUpper() nicht". Richtig wäre:
ausblenden C#-Quelltext
1:
2:
ConsoleKeyInfo ki = Console.ReadKey();
char c = Char.ToUpper(ki.KeyChar);

Auch dafür ist die SDK-Doku ein hervorragendes Hilfsmittel: Neben Erläuterungen gibt es die Definition und viele Beispiele. Wenn man sich nur auf "Intellisense" verlässt, wird einem das selbständige Denken nicht nur abgenommen, sondern man verlernt es schnell.

Die Suche in der SDK-Doku hätte außerdem noch ein einfaches Verfahren (mit Beispiel) über Console.Read() geliefert.

Du siehst: Durch Eigeninitiative kommt man weiter. Jürgen

PS. Ich gebe freilich zu, dass die Bezeichnungen der Klassen, Eigenschaften und Methoden oft verwirren. Das ging gerade mir als Delphi-Umsteiger oft so. Aber wenn man sich in der SDK-Doku die Liste "Alle Member" und die Kurzbeschreibungen durchliest, wird man sehr oft automatisch auf ein passendes Element gestoßen.

PS 2. Bitte entschuldige, wenn meine Ausführungen etwas besserwisserisch klingen. Aber auch für Anfänger sind korrekte Bezeichnungen, Formulierungen und Fragen wichtig. Und wenn Du korrekt fragst, wirst Du auch leichter korrekte Antworten bekommen.

PS 3. Der Fehler in meinem Beispiel-Code hatte damit allerdings nichts zu tun; der war darauf zurückzuführen, dass ich einfach etwas hingeschrieben habe, ohne es zu testen. Aber das muss sowieso Deine Aufgabe sein (es ist ja auch Deine Frage); und wie ich erläutert habe, bietet die SDK-Doku auch die Möglichkeit dazu.

PS 4 (12:39 Uhr). Hier sieht man, dass das NET Framework nicht immer "konsistent" aufgebaut ist. String.ToUpper() ist nicht statisch, sondern wird direkt auf einen bestimmten String angewendet. Char.ToUpper(c) ist dagegen statisch. So entstehen oft unerklärliche Fehler; auch deswegen ist die (eigenständige) Suche in der SDK-Doku so wichtig. (Bitte nicht über string <-> char diskutieren; es kann schon interne Gründe geben, warum das unterschiedlich implementiert wurde.)


Zuletzt bearbeitet von JüTho am So 10.02.08 12:44, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 10.02.08 11:49 
user profile iconJüTho hat folgendes geschrieben:
Es ist wirklich nicht angebracht, mit solchen primitiven Problemen ein Forum zu belasten
In diesem Forum sind alle Fragen willkommen! Dieses Forum ist für Anfänger und Fortgeschrittene gleichermaßen da. Bitte verschrecke Anfänger nicht mit solchen Aussagen! :mahn:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
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 10.02.08 12:26 
user profile iconChristian S. hat folgendes geschrieben:
In diesem Forum sind alle Fragen willkommen! Dieses Forum ist für Anfänger und Fortgeschrittene gleichermaßen da. Bitte verschrecke Anfänger nicht mit solchen Aussagen! :mahn:

So war es nicht gemeint. Schließlich habe ich ja sehr ausführlich geantwortet. Aber es ist wohl nicht zuviel verlangt, auch selbst nach Fehlern zu suchen.

Aber Du hast wohl recht: ich werde künftig eine "passendere" Formulierung suchen.

Schönen Sonntag! Jürgen