Не вызывается метод из другого класса, программа завершает работу без ошибок C#
Я пытаюсь написать программу по работе с базой данных из консоли, и на этапе выбора действия пытаюсь вызвать метод из другого класса, но при вызове программа даже не заходит в класс а просто завершает работу без каких-либо ошибок
namespace TetsBD
{
class Program
{
static void Main(string[] args)
{
int modeSelection;
Console.WriteLine("Выберите режим раборы программы:");
Console.WriteLine("1.Создание таблицы");
modeSelection = Console.Read();
if (modeSelection == 1)
{
CreateColections create = new CreateColections();
create.createColections();
Console.WriteLine(create.createColections());
}
}
}
public class CreateColections
{
public string createColections()
{
string nameColections;
nameColections = Console.ReadLine();
Console.WriteLine(nameColections);
return nameColections;
}
}
}
Ответы (1 шт):
Советую использовать Debug (F11)
1 = 49 как верно подмеченно в комментариях, что Read()
берет код ASCII
Вместо Read()
можно использовать Console.ReadLine()
в комбинации с int.TryParse()
. ReadLine()
считает строку, а TryParse()
поможет безопасно конвертировать эту строку в число. В таком случае ваше условие сработает
if (int.TryParse(Console.ReadLine(), out modeSelection) && modeSelection == 1)
{
//тогда при вводе 1, вы зайдете сюда
}
...Неудобно будет пользоваться. – rotabor
а можно просто считать с помощью Console.ReadKey()
без "ввода" и мы войдем в условие, если мы уверенны, что у нас один символ
ConsoleKeyInfo keyInfo = Console.ReadKey(intercept: true);
char modeSelection = keyInfo.KeyChar;
if (modeSelection == '1')
{
//вошли в наш if
}