C# 第一次尝试编程。我做错了什么?

C# 第一次尝试编程。我做错了什么?,c#,C#,在我的第一次尝试中,我查阅了一些YouTube教程。一个是展示如何创造一个神奇的8球。我完全按照指示去做,但是不行。这样写的话没关系: namespace Magic8Ball { class Program { static void Main(string[] args) { //Preserve Current Console Text Color ConsoleColor OldColor

在我的第一次尝试中,我查阅了一些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);
    }
}
正如您所看到的,我正在尝试创建一个字符串,而不是说我需要一个字符串来完成此操作。我只是想看看它是如何工作的(所以当我需要它的时候,我不需要重新键入它,只需要发布它),但一开始它说“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在此上下文中不存在。这让我更加困惑,因为这在视频中也没有发生。我做错了什么

谢谢你的帮助,也很抱歉nooby的评论。我20岁了,一直想学习编码,但总是太忙了。最近我伤了背,现在有足够的时间坐着什么都不做,所以我想我会试试的

这是我的(在上面)和他的(在下面),即使在你的帮助下(我确实去重新观看了,并注意到我将字符串设置为空,而不是静态空)这些问题仍然存在,我仍然不明白。我道歉。我真的在努力学习和理解。这是一个我可以跳过的部分,仍然可以制作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");
    }

void应使用小写字母。
方法上也缺少开/闭括号。

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

此行不合适,实际上没有任何作用:

String Void TellPeopleTheName(String Text);
  • 这是
    void
    ,而不是
    void
  • 您将为它提供两种返回类型,
    String
    void
    。它要么返回某些内容,要么不返回
  • 这是一个方法头,但缺少一个方法体。作为一行代码,它没有意义。方法需要做一些事情
  • 例如,方法可能如下所示:

    void TellPeopleTheName(string text)
    {
        // write code in here to do something
    }
    
    然后,当您想要执行该操作时,您可以从另一个方法的某个地方调用该方法:

    TellPeopleTheName("some text");
    
    或者,对于返回
    字符串的方法:

    string TellPeopleTheName(string text)
    {
        // code which does something
    
        return "some string";
    }
    
    调用它是一样的,但是您可以将返回值存储在变量中,或者以某种方式使用它:

    var someVariable = TellPeopleTheName("some text");
    

    (注意:即使在尝试此处所述的方法时,您也可能会遇到各种各样的问题。
    static
    方法和非
    static
    方法之间的区别会浮现在脑海中,特别是当您尝试从
    main()调用此方法时)
    。或者从方法返回或使用返回值的各种方式。等等。还有很多东西要学。祝你好运!)

    这行不合适,实际上什么也做不了:

    String Void TellPeopleTheName(String Text);
    
  • 这是
    void
    ,而不是
    void
  • 您将为它提供两种返回类型,
    String
    void
    。它要么返回某些内容,要么不返回
  • 这是一个方法头,但缺少一个方法体。作为一行代码,它没有意义。方法需要做一些事情
  • 例如,方法可能如下所示:

    void TellPeopleTheName(string text)
    {
        // write code in here to do something
    }
    
    然后,当您想要执行该操作时,您可以从另一个方法的某个地方调用该方法:

    TellPeopleTheName("some text");
    
    或者,对于返回
    字符串的方法:

    string TellPeopleTheName(string text)
    {
        // code which does something
    
        return "some string";
    }
    
    调用它是一样的,但是您可以将返回值存储在变量中,或者以某种方式使用它:

    var someVariable = TellPeopleTheName("some text");
    
    (注意:即使在尝试此处所述的方法时,您也可能会遇到各种各样的问题。
    static
    方法和非
    static
    方法之间的区别会浮现在脑海中,特别是当您尝试从
    main()调用此方法时)
    。或者从方法返回或使用返回值的各种方式。等等。还有很多东西需要学习。祝你好运!)

    应该是

    void TellPeopleTheName(String Text)
    {
    
    }
    
    这将处理“失踪尸体”错误

    应该是

    void TellPeopleTheName(String Text)
    {
    
    }
    

    这将解决“丢失尸体”的错误!

    我注意到您在理解过程中遗漏了一些东西

    您尝试编写一个方法,将程序名写入控制台,但该方法的结构不正确

    方法的一般结构是

    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");
    

    我注意到你在理解中遗漏了一些东西

    您尝试编写一个方法,将程序名写入控制台,但该方法的结构不正确

    方法的一般结构是

    AccessModifier static/non-static ReturnType MethodName (ParameterType ParameterName) {
        //code to do something
    }
    
    访问修饰符定义了该方法对其他代码的访问程度(作为一个新手程序员,只需将其保持为公共,直到您变得更高级)

    放置静态或无(非静态)