#c# #.net #computer-science #jetbrains-ide #rider
Вопрос:
Я столкнулся с этой странной проблемой, которая может быть связана с моей IDE или переопределением C#. Всякий раз , когда я вводлю что-то в консоль, что считывается моим Console.ReadLine()
, оно дублируется и отображается ниже, пока я не нажму return. Например, я хочу ввести целую строку, но то, что я вижу, — это чтение символа за символом, что мешает отладке и присутствию моей программы. Я прилагаю приведенный ниже код вместе со скриншотом проблемы.
using System;
using System.Text.RegularExpressions;
namespace Zadanie_1
{
class Program
{
static void ShowMenu()
{
Console.WriteLine("Witaj w grze Siszarp!");
Console.WriteLine("[1] Zacznij nową grę");
Console.WriteLine("[X] Zamknij program");
}
static void PickOption(ConsoleKeyInfo keyPressed)
{
switch (keyPressed.KeyChar)
{
case '1':
Console.Clear();
Option1Picked();
break;
case 'X':
Environment.Exit(0);
break;
}
}
static bool IsCharacterNameValid(String characterName)
{
if (characterName.Length < 2)
{
Console.WriteLine("Niepoprawna nazwa!");
return false;
}
if (!Regex.IsMatch(characterName, @"^[a-zA-Z] $"))
{
Console.WriteLine("Niepoprawna nazwa!");
return false;
}
return true;
}
static void EnterCharacterName()
{
String characterName;
do
{
Console.Write("Podaj nazwę bohatera:");
characterName = Console.ReadLine();
} while (!IsCharacterNameValid(characterName));
}
static void Option1Picked()
{
EnterCharacterName();
}
static void Main(string[] args)
{
ShowMenu();
ConsoleKeyInfo keyPressed = Console.ReadKey();
PickOption(keyPressed);
}
}
}
Комментарии:
1. Я не думаю, что это проблема с вашей реализацией. Как вы запускаете программу? Вы пробовали запустить его в другом терминале/оболочке?
2. @M. Деннхардт да, это работает, когда я запускаю его на внешней консоли, но это своего рода отстой, так как я бы предпочел протестировать свою программу во встроенной консоли Райдера.
3. Поскольку он работает, как и ожидалось, во внешней консоли, это, по-видимому, проблема с Rider. Есть несколько открытых ошибок , связанных с запуском консоли на трекере, например, 39941 . Однако я не смог найти ничего похожего на вашу проблему с помощью быстрого поиска. Вы могли бы попробовать повысить/понизить рейтинг Райдера и посмотреть, исправит ли это проблему. Вы также можете попробовать установить или снять флажок «Использовать внешнюю консоль» в окне «Конфигурации запуска/отладки».