Console.Readkey und Console.Writeline Unterschied?

3 Antworten

Primär ist der Unterschied zwischen beiden, dass ReadKey eine Eingabefunktion darstellt und WriteLine eine Ausgabefunktion ist.

Bei ReadKey wird zum Unterschied zu ReadLine nur ein Zeichen (Beliebige Taste) erfasst und bei ReadLine wird erst eingelesen, wenn der Benutzer auf Enter drückt.

WriteLine erwartet einen String oder keinen Parameter. Wenn kein String angegeben wird spuckt WriteLine einfach eine Leerzeile aus.

Es gibt auch noch Console.Write das den Cursor nicht in die nächste Zeile setzt.

Hier ein Projekt zum Üben und nachprogrammieren:
(Erstelle ein neues C# Consolenprojekt und nenne es Mitarbeiter)

using System;
using System.IO;
using System.Collections.Generic;

namespace Mitarbeiter
{
    public class MitarbeiterIn
    {
        //Properties
        public string Name { get; set; }
        public string Adresse { get; set; }
        public int Personalnummer { get; set; }
        public int Alter { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            string antwort = "";
            string pfad = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\Mitarbeiter.txt";

            List<MitarbeiterIn> listOfMitarbeiterIn = new List<MitarbeiterIn>();
            if (File.Exists(pfad))
            {
                using (StreamReader sr = File.OpenText(pfad))
                {

                    string s = sr.ReadToEnd();
                    
                    string[] Einlesen = s.Split('\n');
                    for (int i = 0; i < Einlesen.Length; i++)
                    {
                        string[] LeseListe = Einlesen[i].Split(';');
                        if (LeseListe.Length != 1)
                        {
                            MitarbeiterIn m1 = new MitarbeiterIn();
                            try
                            {
                                m1.Name = LeseListe[0];
                                m1.Adresse = LeseListe[1];
                                m1.Alter = Convert.ToInt32(LeseListe[2]);
                                m1.Personalnummer = Convert.ToInt32(LeseListe[3]);
                                listOfMitarbeiterIn.Add(m1);
                            }
                            catch
                            {
                            }
                        }
                    }
                    if (listOfMitarbeiterIn.Count == 1)
                    {
                        Console.WriteLine((listOfMitarbeiterIn.Count) + " Datensatz wurden geladen");
                    }
                    else
                    {
                        Console.WriteLine((listOfMitarbeiterIn.Count) + " Datensätze wurden geladen");
                    }
                    Console.WriteLine();
                }
            }
          do
          {
              Console.WriteLine("1. Neue MitarbeiterIn hinzufügen / 2. MitarbeiterInnen anzeigen / 3. Datensatz Löschen / 4. Programm beenden");
              antwort = Console.ReadLine();

              if (antwort == "1")
              {
                  MitarbeiterIn m1 = new MitarbeiterIn();
                  
                  Console.WriteLine("Bitte geben Sie den oder die Mitatbeiterin ein!");
                  Console.WriteLine("Name:");
                  string s = Console.ReadLine();
                  m1.Name = s.Replace(';', ',');
                  Console.WriteLine("Adresse:");
                  s = Console.ReadLine();
                  m1.Adresse = s.Replace(';', ',');
                  Console.WriteLine("Alter:");
                  s = Console.ReadLine();
                  try
                  {
                      m1.Alter = Int32.Parse(s);
                  }
                  catch (FormatException e)
                  {
                       m1.Alter = 0;
                  }
                 Console.WriteLine("Personalnummer:");
                  s = Console.ReadLine();
                 try
                  {
                     m1.Personalnummer = Int32.Parse(s);
                  }
                  catch (FormatException e)
                  {
                      m1.Personalnummer = 0;
                  }
                 if (m1.Name != "" && m1.Adresse != "")
                 {
                     if (m1.Alter != 0 && m1.Personalnummer != 0)
                     {
                         Console.WriteLine("MitarbeiterIn wurde hinzugefügt.");
                         listOfMitarbeiterIn.Add(m1);
                     }
                     else
                     {
                         Console.WriteLine("Alter oder Personalnummer falsch!");
                     }
                 }
                 else
                 {
                     Console.WriteLine("Bitte geben Sie Name und Adresse ein!");
                 }

                  Console.WriteLine();
              }

              if (antwort == "2")
              {
                  Console.WriteLine();
                  if (listOfMitarbeiterIn.Count != 0)
                  {
                      for (int i = 0; i < listOfMitarbeiterIn.Count; i++)
                      {
                          Console.WriteLine("Datensatznummer: " + (i+1));
                          Console.WriteLine("Name: " + listOfMitarbeiterIn[i].Name);
                          Console.WriteLine("Adresse: " + listOfMitarbeiterIn[i].Adresse);
                          Console.WriteLine("Alter: " + listOfMitarbeiterIn[i].Alter);
                          Console.WriteLine("Personalnummer: " + listOfMitarbeiterIn[i].Personalnummer);
                          Console.WriteLine();
                      }
                      
                  }
                  else
                  {
                      Console.WriteLine("Keine Mitarbeiter gespeichert");
                      Console.WriteLine();
                  }
              }
              if (antwort == "3")
              {
                  Console.WriteLine("Geben Sie die zu löschenden Datensatznummer ein:");
                  Console.WriteLine();
                  string Edit = Console.ReadLine();
                  try
                  {
                      int  Number = Int32.Parse(Edit);
                      if (Number <= listOfMitarbeiterIn.Count && Number > 0)
                      {
                          Console.WriteLine("Datensatznummer: " + Number);
                          Console.WriteLine("Name: " + listOfMitarbeiterIn[Number - 1].Name);
                          Console.WriteLine("Adresse: " + listOfMitarbeiterIn[Number - 1].Adresse);
                          Console.WriteLine("Alter: " + listOfMitarbeiterIn[Number - 1].Alter);
                          Console.WriteLine("Personalnummer: " + listOfMitarbeiterIn[Number - 1].Personalnummer);
                          Console.WriteLine();
                          string editieren;
                          do
                          {
                              Console.WriteLine("Datensatz Löschen? (j/n)");

                              editieren = Console.ReadLine();
                              if (editieren == "j")
                              {
                                  listOfMitarbeiterIn.Remove(listOfMitarbeiterIn[Number - 1]);
                                  Console.WriteLine("Datensatz " + Number.ToString() + " wurde gelöscht!");
                                  Console.WriteLine();
                                  break;
                              }
                          } while (editieren != "n");
                      }
                      else
                      {
                          Console.WriteLine("Datensatz nicht gefunden.");
                          Console.WriteLine();
                      }
                  }
                  catch (FormatException e)
                  {
                  }
              

              }
          } while (antwort != "4");

          Console.WriteLine("Programm wind beedet!");
          Console.WriteLine();
            do
            {   
                 Console.WriteLine("Änderungen speichern (j/n)?");
                antwort = Console.ReadLine();
                if (antwort == "j")
                 {
                      
                    using (System.IO.StreamWriter Datei = new System.IO.StreamWriter(pfad))
                         {

                             for (int i = 0; i < listOfMitarbeiterIn.Count; i++)
                             {
                                 Datei.WriteLine(listOfMitarbeiterIn[i].Name + ";" + listOfMitarbeiterIn[i].Adresse + ";" + listOfMitarbeiterIn[i].Alter.ToString() + ";" + listOfMitarbeiterIn[i].Personalnummer.ToString() );
                             }
                         }
                     }
                if (antwort == "n")
                 {
                     break;
                 }
            } while (antwort != "j");
            
            //Console.ReadKey();
        }
    }
 }
Woher ich das weiß:eigene Erfahrung

ReadKey

Ruft die nächste vom Benutzer gedrückte Zeichen- oder Funktionstaste ab.

WriteLine

Schreibt die angegebenen Daten, gefolgt vom aktuellen Zeichen für den Zeilenabschluss, in den Standardausgabestream.

Woher ich das weiß:Studium / Ausbildung – Informatikstudent

momooooooooo1 
Fragesteller
 07.11.2020, 23:02

Schön kopiert aber jetzt mal bitte einfacher und genauer erklärt😂

0
xxxcyberxxx  07.11.2020, 23:06
@momooooooooo1

Und was genau verstehst du daran nicht? Um es noch einfacher auszudrücken:

  • readKey LIEST eine gedrückte Taste eie
  • WriteLine gibt das Übergebene aus
1

das eine macht read key (keyboard kennste aber , also ein TASTENBOARD ) das ander macht write line (zeile nicht linie)