首次尝试编程.我在这里做错了什么
本文关键字:在这里 错了 什么 编程 | 更新日期: 2023-09-27 18:18:34
在此处输入图像描述对于我的第一次尝试,我查找了一些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");
}
这一行不合适,实际上没有任何作用:
String Void TellPeopleTheName(String Text);
- 这是
void
,而不是Void
。 外壳很重要。 - 您为其提供两种返回类型,
String
和void
。 它要么返回某些内容,要么不返回。 - 这是一个方法标头,但缺少方法主体。 作为一行代码,它没有意义。 方法需要做点什么。
例如,方法可能如下所示:
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()
调用此方法。 或者从方法返回或使用返回值的各种方式。 等等。 有很多东西需要学习。 祝你好运!
String Void TellPeopleTheName(String Text);
应该是
void TellPeopleTheName(String Text)
{
}
这将处理"丢失的身体"错误!
void 应该是小写的。您在方法上也缺少左/右括号。
我注意到你在理解方面错过了几件事。
您尝试做的是编写一个方法以将程序的名称写入控制台,但该方法的结构不正确。
方法的一般结构是...
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");