Die Convert-Klasse und die Konvertierung der Console-Eingabe C #

Diese Frage ist eher "Warum kann ich das nicht machen / Was mache ich falsch?", Da ich es geschafft habe, das zu tun, was das Programm tun soll, aber es hat mehr Fragen aufgeworfen, warum bestimmte Dinge so funktionieren, wie sie funktionieren.

Für den Anfang besteht das Ziel dieses Projekts darin, ein einzelnes Zeichen aus dem Konsolenfenster zu erfassen (mithilfe von Console.Read () /. ReadLine ()), es in eine Zeichenfolge mit der Convert-Klasse zu konvertieren und dann in die Konsole zu schreiben Fenster

Ich habe es geschafft, meinem Projekt diese Funktionalität mit dem folgenden Code zu verleihen:

namespace ReadConvertWrite
{
    class Program
    {
        static void Main(string[] args)
        {

            String input = Console.ReadLine();
            try
            {
                Convert.ToInt32(input);
            }
            catch (Exception)
            {

            }
            Console.WriteLine(input);
            Console.ReadLine();
        }
    }
} 

Da dies als sinnlose Übung erscheint, da die Konvertierung nicht erforderlich ist, wollte ich dies mithilfe der .Read () -Methode anstelle von .ReadLine () erforderlich machen. Was mich zu meiner Frage führt:

Warum gibt .Read () immer den hexadezimalen Wert des in die Konsole eingegebenen Zeichens aus, obwohl die MSDN-Dokumentation so aussieht, als würden .Read () und .ReadLine () genauso funktionieren, abgesehen vom Lesen eines einzelnen Zeichens Vs a line, und warum funktioniert darüber hinaus keine der von mir getesteten Convert-Klassenmethoden (.ToInt, .ToString usw.), um eine andere Ausgabe als die hexadezimalen Werte zu erhalten?

Hier ist, was ich bisher ausprobiert habe:

namespace ReadConvertWrite
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine(Convert.ToString(Console.Read()));
            Console.ReadLine();
            Console.ReadLine();
        }
    }
}

Und

namespace ReadConvertWrite
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = 0;
            input = Console.Read();
            String InputString = Convert.ToString(input);
            Console.ReadLine();
            Console.ReadLine();
        }
    }
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage