Класс Convert и конвертирующий консольный ввод C #
Этот вопрос больше напоминает «Почему я не могу сделать это / что я делаю неправильно», поскольку мне удалось выполнить то, что должна делать программа, но возникло больше вопросов о том, почему определенные вещи работают так, как они работают.
Для начала, целью этого проекта является захват одного символа из окна консоли (с помощью Console.Read () /. ReadLine ()), преобразование его в строку с классом Convert, а затем запись в окно консоли. ,
Мне удалось заставить мой проект иметь эту функциональность со следующим кодом:
namespace ReadConvertWrite
{
class Program
{
static void Main(string[] args)
{
String input = Console.ReadLine();
try
{
Convert.ToInt32(input);
}
catch (Exception)
{
}
Console.WriteLine(input);
Console.ReadLine();
}
}
}
Учитывая, что это кажется бессмысленным упражнением, поскольку преобразование не нужно, я хотел сделать это необходимым, используя метод .Read () вместо .ReadLine (). Что приводит меня к моему вопросу:
Почему .Read () всегда печатает шестнадцатеричное значение символа, введенного в консоль, несмотря на то, что документация MSDN заставляет его звучать так, как .Read () и .ReadLine (), работают одинаково, за исключением чтения одного символа против строки и кроме того, почему ни один из методов класса Convert, которые я пробовал (.ToInt, .ToString и т. д.), не работает, чтобы фактически дать мне вывод, отличный от шестнадцатеричных значений?
Вот что я пробовал до сих пор:
namespace ReadConvertWrite
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Convert.ToString(Console.Read()));
Console.ReadLine();
Console.ReadLine();
}
}
}
А также:
namespace ReadConvertWrite
{
class Program
{
static void Main(string[] args)
{
var input = 0;
input = Console.Read();
String InputString = Convert.ToString(input);
Console.ReadLine();
Console.ReadLine();
}
}
}