-2

cosmos (C#) で OS を作成していますが、コードを正しく取得できません。ここにあります:

var input = Console.ReadLine();
if (input = 'h')
    Console.Write("This is the help section...");
else
    Console.Write("Invalid Command.");
Console.WriteLine(input);

私がやりたいのは、「H」と入力するとヘルプセクションが出力され、他の何かを入力すると「無効なコマンド」と入力されることです。

「エラー: タイプ 'char' を 'string' に暗黙的に変換できません。

完全なコード

using System;
using System.Collections.Generic;
using System.Text;
using Sys = Cosmos.System;

namespace Dingo_OS
{
    public class Kernel : Sys.Kernel
    {
        protected override void BeforeRun()
        {
        Console.WriteLine("Thank you for trying out my OS. For any help, input /h.");
        }

        protected override void Run()
        {
            var input = Console.ReadLine();
            if (input = 'h')
                Console.Write("This is the help section...");
            else
                Console.Write("Invalid Command.");
            Console.WriteLine(input);
        }
    }
}
4

2 に答える 2

1

Console.ReadLine単一の文字ではなく文字列を返します。したがって、文字列と比較する必要があります。文字列リテラルは、一重引用符ではなく二重引用符を使用します。==また、代入演算子 ( ) ではなく等価比較演算子 ( ) が必要です=

if (input == "h")

正直なところ、C# の経験が十分になく、これが問題の原因となっている場合は、一歩下がって、より「通常の」環境 (コンソールやクライアント アプリなど) で C# の基本を学習してから、冒険することをお勧めします。コスモスに。私は Cosmos の作業を自分で行ったことはありませんがかなりトリッキーな領域がいくつかあると思います。最初に C# の基礎をしっかりと固めていないと、さらに難しくなるでしょう。

于 2013-09-08T06:52:10.787 に答える
0

Console.ReadLinestringaではなく aを返します。読み取りにchar使用できますConsole.ReadKey().KeyCharchar

protected override void Run()
{
    var input = Console.ReadKey().KeyChar;
    if (input == 'h')
        Console.Write("This is the help section...");
    else
        Console.Write("Invalid Command.");
    Console.WriteLine(input);
}
于 2013-09-08T06:56:03.460 に答える