在cosmos中创建操作系统时出错

时间:2013-09-08 06:51:01

标签: c# operating-system cosmos

我正在宇宙中创建一个操作系统(C#),但我无法正确使用代码。 这是:

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);
        }
    }
}

2 个答案:

答案 0 :(得分:1)

Console.ReadLine会返回字符串,而不是单个字符。所以你需要将它与一个字符串进行比较。字符串文字使用双引号,而不是单引号。此外,您需要等于比较运算符(==)而不是赋值运算符(=):

if (input == "h")

老实说,如果你对C#缺乏经验,这会导致你出现问题,我建议你退后一步,在更“正常”的环境(例如控制台或客户端应用程序)中学习C#的基础知识在冒险进入宇宙之前。我自己没有做任何Cosmos工作,但我怀疑会有一些非常棘手的领域,由于没有C#的坚实基础,这将会更难以实现很多

答案 1 :(得分:0)

Console.ReadLine返回string而不是char,您可以使用Console.ReadKey().KeyChar阅读char

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);
}