c# 大写锁定控制台类型

c# console type in capslock

我想创建一个 "Terminal"- 小游戏,其中所有内容都是大写的。 但是当你用console readline打字的时候,输入的不是全是大写的,我还没找到解决方法

所以如果我输入 "login" 我希望控制台实时输入 "LOGIN"。

目前,我的代码如下所示:

static void Main(string[] args)
    {
        slowType("TERMINALTEST V1.0 CORP", 50, 100);
        Console.WriteLine();
        slowType(">", 50, 100);
        string temp = Console.ReadLine();
    }

    static void slowType(string input, int minvelo, int maxvelo)
    {
        Random temp = new Random();
        for (int i = 0; i < input.Length; i++)
        {
            Console.Write(input[i]);
            Thread.Sleep(temp.Next(minvelo, maxvelo));
        }
    }

我想替换

string temp = Console.ReadLine();

string temp = MethodForTypingUppercase();

这将每次取每个字符1,如果按下回车则退出,否则我们将其大写,抑制原始字符,然后写入大写版本。

static void Main(string[] args)
{
    string test = GetCapitalizedInput();
    Console.WriteLine("Captured: " + test);
    Console.ReadLine();
}

static string GetCapitalizedInput()
{
    string input = "";
    while (true)
    {
        var keypress = Console.ReadKey(true); // suppress original output
        if (keypress.Key == ConsoleKey.Enter)
        {
            break;
        }
        string uppercased = keypress.KeyChar.ToString().ToUpper();
        input += uppercased;
        Console.Write(uppercased);
    }
    return input;
}