第一次尝试编程。我在这做错了什么?

时间:2016-11-18 17:22:09

标签: c#

enter image description here第一次尝试时,我查了一些YouTube教程。一个是展示如何创建一个魔术8球。我几乎完全按照说明操作,但它不会起作用。如果这样写的话很好:

namespace Magic8Ball
{
    class Program
    {
        static void Main(string[] args)
        {

            //Preserve Current Console Text Color
            ConsoleColor OldColor = Console.ForegroundColor;

            //Change Console Text Color
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Magic 8 Ball. By: Conner Bostock");

            Console.ForegroundColor = ConsoleColor.White;
            Console.Write("Ask a question?: ");
            Console.ForegroundColor = ConsoleColor.DarkGray;
            String QuestionString = Console.ReadLine();
            //Cleaning Up
            Console.ForegroundColor = OldColor;
        }

        String Void TellPeopleTheName(String Text);
    }
}

如你所见,我正在尝试创建一个String,而不是我需要一个人来做这个。我只是想知道它是如何工作的(所以当我需要它时我不需要重新输入它并且可以发布它)但是从它开始说" TellPeopleTheName必须声明一个身体"我很困惑,因为视频中没有发生这种情况。不仅如此,当我剪切并粘贴代码以加入它时。出于某种原因,它全部破裂,不再有效:

namespace Magic8Ball
{
    class Program
    {
        static void Main(string[] args)
        {

            //Preserve Current Console Text Color
            ConsoleColor OldColor = Console.ForegroundColor;

            Console.ForegroundColor = ConsoleColor.White;
            Console.Write("Ask a question?: ");
            Console.ForegroundColor = ConsoleColor.DarkGray;
            String QuestionString = Console.ReadLine();
            //Cleaning Up
            Console.ForegroundColor = OldColor;
        }

        String Void TellPeopleTheName(String Text);

        //Change Console Text Color
        Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Magic 8 Ball. By: Conner Bostock");

整个底部用红色加下划线"无效的令牌"并且在此上下文中不存在Writeline"。这让我更加困惑,因为视频中没有发生这种情况。我做错了什么?

感谢您的帮助,并感谢抱歉的评论。我20岁,一直想学习编码,但总是忙于工作。最近打破了我的背,现在有足够的时间坐着什么都不做,所以我想我会试一试。

这是我的(在顶部)和他的(贝娄),甚至在你的帮助之后(我确实去重新观看并注意到我把String Void而不是静态无效)这些问题仍然在这里,我仍然没有&#39不明白我道歉。我真的很想学习和理解。这是我可以跳过的部分,仍然可以制作8球,但我想知道为什么它不起作用以及如何解决它所以我知道什么时候我需要使用它。 新的完整代码:

namespace Magic8Ball
{
    class Program
    {
        static void Main(string[] args)
        {

            //Preserve Current Console Text Color
            ConsoleColor OldColor = Console.ForegroundColor;

            Console.ForegroundColor = ConsoleColor.White;
            Console.Write("Ask a question?: ");
            Console.ForegroundColor = ConsoleColor.DarkGray;
            String QuestionString = Console.ReadLine();
            //Cleaning Up
            Console.ForegroundColor = OldColor;
        }
        //This will tell people the name
        static void TellPeopleTheName()

        //Change Console Text Color
        Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Magic 8 Ball. By: Conner Bostock");
    }

4 个答案:

答案 0 :(得分:4)

此行不合适,实际上并没有做任何事情:

String Void TellPeopleTheName(String Text);
  1. 它是void,而不是Void。套管很重要。
  2. 您正在为其提供两个返回类型,Stringvoid。它要么返回一些东西,要么就不返回。
  3. 这是一个方法标题,但你错过了一个方法体。作为单行代码,它没有意义。方法需要某事。
  4. 例如,方法可能如下所示:

    void TellPeopleTheName(string text)
    {
        // write code in here to do something
    }
    

    然后,当您想要执行该操作时,您将从另一个方法调用(调用)该方法:

    TellPeopleTheName("some text");
    

    或者,对于返回string的方法:

    string TellPeopleTheName(string text)
    {
        // code which does something
    
        return "some string";
    }
    

    调用它将是相同的,但您可以将返回值存储在变量中,或以其他方式使用它:

    var someVariable = TellPeopleTheName("some text");
    

    (注意:即使在尝试此处描述的内容时,您可能会遇到各种各样的问题。我会想到static和非static方法之间的区别,特别是如果您尝试从main()调用此方法。或者您可以从方法返回的各种方式或使用返回的值。等等。有很多东西需要学习。祝你好运!)

答案 1 :(得分:1)

String Void TellPeopleTheName(String Text);

应该是

void TellPeopleTheName(String Text)
{

}

这会照顾“遗体”错误!

答案 2 :(得分:0)

void应为小写。 您也缺少方法上的打开/关闭括号。

答案 3 :(得分:0)

我注意到你在理解中错过了一些事情。

您尝试做的是编写一种方法来向控制台写入程序名称,但方法结构不正确。

方法的一般结构是......

AccessModifier static/non-static ReturnType MethodName (ParameterType ParameterName) {
    //code to do something
}

访问修饰符定义了方法对其他代码的可访问性(作为初始程序员,只需将其保持为公共状态,直到您变得更高级)。

静态或非静态(非静态)对初学者来说有点混乱,如果你要从Main(静态方法)调用方法那么它将需要是静态的,那就是足以让初学者现在理解。

返回类型定义方法在调用方法时应返回的内容。

方法名称就是调用方法的方式,应该是描述性的,并清楚方法的作用。

参数类型是作为要使用的方法的参数传递的对象类型。

参数名称只是一个名称,名称应该很容易解释参数的目的是什么。

遵循此结构,您的方法应该看起来像......

public static void TellPeopleTheName(string text)
{
    //Change Console Text Color
    Console.ForegroundColor = ConsoleColor.Green;
    Console.WriteLine("Magic 8 Ball. By: Conner Bostock");
}

如果你想让方法更多"更正",那就是...

public static void TellPeopleTheName(string nameOfProgram)
{
    //Change Console Text Color
    Console.ForegroundColor = ConsoleColor.Green;
    Console.WriteLine(nameOfProgram);
}

你会像这样调用这个方法......

TellPeopleTheName("Magic 8 Ball. By: Conner Bostock");