嘿家伙我需要帮助我正在制作的程序,我已经找到了一切但只有一个.
我的代码看起来像这样,但我已经缩短了一点……
public static void mainvoid() { string line = Console.ReadLine().ToLower(); if (line == "restart") { Console.Clear(); Main(); } if (line == "enter a value: ") { string value = console.ReadLine(); console.writeline("Your value is {0}",value); mainvoid(); } if (line == "my name") { Console.WriteLine("Your name is {0}",ConsoleApplication1.Properties.Settings.Default.name); mainvoid(); }
我希望我的程序能够获取一个命令(我已经做过的女巫……),其中一些人在他们之后有值/字符串.
顺便说一句,我正在使用c#2010
我希望我的命令看起来像这样
My name is Daniel
and so the string/value = Daniel
or
name = billy
so the string/value = billy
所以我希望它通过console.readline();并选择它正在更改名称,之后将更改为名称.
但我不知道如何使最后一位我也可以使用的值/字符串…
如果你可以帮我:)请发表评论:)
解决方法
我可以看到这里有两个问题,一个是从“my name is xyz”命令中提取人名,另一个是在程序中保存该值.
由于你构造mainmethod的方式,以及它调用自身的事实(这称为递归),它不能共享从一个调用到下一个调用的任何变量.这使得无法存储人名.您可以通过在mainmethod中创建循环来消除递归
static public void Main() { string currentLine; do { currentLine = Console.ReadLine(); } while (!currentLine.Equals("exit")) }
这将持续允许用户输入命令,并且当用户进入“退出”时程序将终止.
现在解决存储用户名的问题,你可以简单地删除句子中的“我的名字是”部分来获取用户名…
static public void Main() { string username = "Matthew"; string currentLine; do { currentLine = Console.ReadLine(); if (currentLine.Equals("restart")) { Console.Clear(); } if (currentLine.StartsWith("my name is")) { username = currentLine.Replace("my name is ",""); } if (currentLine.Equals("my name")) { Console.WriteLine("Your name is {0}",username); } } while (!currentLine.Equals("exit")) }
我希望能让你感动!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。