尝试在这里进行一些高级文本冒险,我有一个库存类。 (不是错误),一切都很好! 我正在尝试实现输入的功能。它只是导致输入,然后将参数返回给该类。我觉得这很容易。原来一个'void'方法无法返回一些东西。我当时不知道应该用什么 我在谷歌搜索了一下但找不到谷歌,这里的答案都是XML或更有经验的程序员。还有一些更简单,但没有答案。
这是我的程序类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Inventory_system_test
{
class Program
{
//Objects
static private Inventory inv = new Inventory();
//strings
static private string args;
//variables
static void Main(string[] args)
{
Write("Do you want to kill dave?");
input();
}
static public void input()
{
bool done = false;
Writen("Enter a command: ");
args = Console.ReadLine();
while (!done)
{
if (args.Contains("add inv "))
{
args = args.Split()[2];
inv.additem(args);
}
else if (args.Contains("remove inv "))
{
args = args.Split()[2];
inv.removeitem(args);
}
else if (args.Contains("see inv"))
{
Write("INVENTORY:");
inv.getinv();
}
else if (args == "close")
{
Environment.Exit(0);
}
else
{
done = true;
return args; ///**Here is the error ofcourse.**
}
}
} //Input files things :)
#region Easy Commands (Write, Sleep)
//Write to console
public static void Write(string writev)
{
Console.WriteLine(writev);
}
//Sleep for 'int sleeptime' in milliseconds
public static void Sleep(int sleeptime)
{
System.Threading.Thread.Sleep(sleeptime);
}
public static void Writen(string writen)
{
Console.Write(writen);
}
#endregion
}
}
我越来越理解脚本了,只是通过提问和搜索谷歌,我真的很喜欢Stackoverflow上的人!谢谢大家的帮助!
呃......我怎么去做呢? 方法不多..而且我不知道该怎么办。
答案 0 :(得分:3)
原来一个'void'方法无法返回一些东西。我当时不知道应该用什么。
您应该使用声明的方法来返回您想要返回的信息类型!当方法为void
时,这意味着它不是意味着返回任何内容。
在这种情况下,您似乎正在尝试返回args
的值,这是一个string
变量,因此您需要:
public static string input()
此外:
args
变量没有理由是静态的 - 它会更好地作为你方法中的局部变量args
无论如何都是这个变量的奇怪名称。鉴于您要求命令,为什么不使用command
作为变量名?我建议你阅读MSDN page on methods或者阅读一本关于C#的好书,以了解有关返回类型,参数等的更多信息。
答案 1 :(得分:1)
当用作方法的返回类型时,void指定 方法不返回值。
但是你的input
方法返回一个值,所以..
Console.ReadLine()
方法会重新调整string
,因此您的args
看起来像string
。这就是您应该将返回类型更改为string
之类的原因;
public static string input()
{
}
答案 2 :(得分:1)
您将args
声明为string
类型,这就是您应该返回的内容:
static public string input()
{
...
return args;
}