我可以在输入的字母和数字中检查一组字母吗? (C#)

时间:2015-01-18 21:43:18

标签: c#

我正在尝试用C#创建一个伪shell程序,但是我需要知道如何显示两个不同的消息,具体取决于用户是否在其“命令”前面放置'cd'。

以下是我的代码的一部分:

/* C:\Users dir */
users:

Console.Write("C://Users>");
string userValueFromUsers;
userValueFromUsers = Console.ReadLine();
if (userValueFromUsers.Equals("exit"))
{
    goto end;
}
else if (userValueFromUsers.Equals(""))
{
    goto users;
}
else if (userValueFromUsers.Equals("cd.."))
{
    goto users;
}
else if (userValueFromUsers.Equals("cd " + random text));
{
    Console.WriteLine("The system cannot find the path specified.");
}
else if (userValueFromUsers.Equals("cd.."))
{
    goto c;
}
else
    Console.WriteLine("'" + userValueFromUsers + "' is not recognised as an internal or external command,"); Console.WriteLine("operable program or batch file.\n")
goto users;

我的问题是在行中写着“if(userValueFromUsers.Equals(”cd“+ random text”));“,'随机文本'是我当前占位符'用户说的任何内容。'

澄清,c,开始,结束和用户都只是我的代码的一部分,c是C:\目录,开始是你退出的开始和结束。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我不确定你在问什么,但你的代码似乎有一些逻辑错误。也许他们已经成为你问题的一部分?试试吧。它现在有效吗?

另外,你为“cd ..”测试了两次。第二次测试从未执行过。我从源代码中删除了它。

/* C:\Users dir */
users:

Console.Write("C://Users>");
string userValueFromUsers;
userValueFromUsers = Console.ReadLine();
if (userValue.Equals("exit"))
{
    goto end;
}
else if (userValueFromUsers.Equals(""))
{
    goto users;
}
else if (userValueFromUsers.Equals("cd.."))
{
    goto users;
}
else if (userValueFromUsers.Equals("cd " + "random text"))
{
    Console.WriteLine("The system cannot find the path specified.");
}
else
{
    Console.WriteLine("'" + userValueFromUsers + "' is not recognised as an internal or external command,");
    Console.WriteLine("operable program or batch file.\n");
    goto users;
}