我正在宇宙中创建一个操作系统(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);
}
}
}
答案 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);
}