Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
程序中需要的字符串是;“未使用”;C#_C#_String_Unused Variables - Fatal编程技术网

程序中需要的字符串是;“未使用”;C#

程序中需要的字符串是;“未使用”;C#,c#,string,unused-variables,C#,String,Unused Variables,我一直在用C#制作一个文本冒险游戏(了解更多关于字符串之类的东西)。我有大约3个随机场景,在你开始的10个基本场景之后触发。其中之一是猴子庙。“menu”类有两个参数,MainArgs和takenDump。在这些场景中,如果takenDump是真的(bool),你可以选择倒垃圾,并会说“你旁边有个便便”。如果使用无法识别的命令,则使用MainArgs返回相同的场景 public void ConScen1() { string MainArgs; bool taken

我一直在用C#制作一个文本冒险游戏(了解更多关于字符串之类的东西)。我有大约3个随机场景,在你开始的10个基本场景之后触发。其中之一是猴子庙。“menu”类有两个参数,MainArgs和takenDump。在这些场景中,如果takenDump是真的(bool),你可以选择倒垃圾,并会说“你旁边有个便便”。如果使用无法识别的命令,则使用MainArgs返回相同的场景

public void ConScen1()  
{  
    string MainArgs;  
    bool takenDump; // Available commands are: "hit monkey talk to monkey suicide go inside"  
    string conchoice1;  
    Console.WriteLine("You arrive at a temple dedicated to the monkey god.");  
    Console.WriteLine("Outside is a monkey, presumably guarding the place.");  
    Console.WriteLine("What do you do?");  
    Console.Write(">");  
    conchoice1 = Console.ReadLine();  
    if (conchoice1.Contains("hit monkey"))  
    {  
        Console.WriteLine("You hit the monkey. He draws a knife.");  
        Console.WriteLine("He stabs you in the eye. You bleed to death.");  
        Console.WriteLine(" -- Game Over --");  
        Console.WriteLine("Press any key to start over..");  
        Console.ReadKey();  
        takenDump = false;  
        MainArgs = "null";  
        TextAdventure1.AdventureTime.Menu(MainArgs, takenDump);  
    }  
}
这里的问题是“字符串MainArgs;”行。我需要它调用带有“null”的Menu()重新开始。但是,studio说它是未使用的(即使它在if语句中使用)。有没有办法禁用警告或修复问题?如果我删除该行,它会给出一个关于MainArgs如何未声明的错误(在If语句中)

这里的问题是“字符串MainArgs;”行。我需要它调用带有“null”的Menu()重新开始

不,你真的不知道。您也不需要
takenDump
。您只需将呼叫更改为:

TextAdventure1.AdventureTime.Menu("null", false);
需要传入一个值为“null”的字符串是非常奇怪的

我还强烈建议您在首次使用时声明变量,因此在此处声明
conchoice1

string conchoice1 = Console.ReadLine();
(我也会给它重新命名……还有你的方法。你到处都是奇怪的名字。命名既重要又困难。)


请注意,您的程序“重新启动”的方式也很奇怪——它是通过再次调用自身来实现的(我假设
菜单
是某种顶级方法,最终可以调用
ConScen1
。想想用户失败几次后,执行堆栈会是什么样子……你不想以这种方式递归。不清楚你的程序控制流通常是什么样子,但你应该改变游戏的状态,并注意到更高的级别,而不是这种方法。

是否会抱怨,因为如果“MainArgs”没有进入
if
块,它将不会被使用?尽管如此,听起来您甚至根本不需要变量。是的,您看到的实际错误是因为if conchoice1.Contains(“hit monkey”)导致的如果不正确,那么MainArgs将永远不会被使用。我没有想过要这样做,我尝试在参数中声明一个字符串,但它不起作用!谢谢!对于不熟悉我的代码的人来说,命名是非常奇怪的,因为conchoice意味着联合选择(Conjoined,来自ConjoinedScenarios,这是另一个类,然后是TCS,意思是第三个Conjoined Scenario,然后是ECS,意思是结束Scenarios)。如果我向您展示关于它如何工作的源代码会更好吗?我不知道如何做得更好,因为我从您那里了解到的是,如果用户多次失败,那么菜单()它自己被召唤了好几次。有什么办法吗?()