学习C#并尝试创建一个快速游戏,我收到错误消息' message'是一个变量'但是像一种方法一样使用'。创建了一个名为message的空字符串,并在下面定义了它。遵循Microsoft Virtual academy的教程。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PrizeGame
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, you're going to play a game"+
"Pick a number between 1 and 10, Type it and press enter.");
string userValue = Console.ReadLine();
string message="";
string noWin ="Sorry, you didn't win anything :(. On the"+
"other hand you helped me with my project, thanks!";
if (userValue == "1")
{
message(noWin);
}
else if (userValue=="2")
{
message("Congratulations, you won a penny! Also, thanks for"+
"helping me with my project!");
}
else if(userValue=="3")
{
message(noWin);
}
else if(userValue=="3")
{
message(noWin);
}
else if(userValue=="4")
{
message("Congratulations, you won 20 pence! Also, thanks for"+
"helping me with my project!");
}
else if(userValue=="5")
{
message(noWin);
}
else if(userValue=="6")
{
message(noWin);
}
else if(userValue=="7")
{
message ("Congratulations, you just won the top prize, £1!!"+
"Also, thanks for helping me with my project.");
}
else if (userValue=="8")
{
message(noWin);
}
else if (userValue=="9")
{
message(noWin);
}
else if (userValue=="10")
{
message(noWin);
}
else
{
message("Sorry I couldn't understand what you wrote"+
"make sure you use a number between 1 and 10");
}
Console.WriteLine(message);
Console.ReadLine(),;
}
}
}
`
答案 0 :(得分:2)
您正在声明一个名为message的字符串变量。你不能用方法表示法来调用它。
这样做
message = "Congratulations, you won a penny! Also, thanks for"+"helping me with my project!";
答案 1 :(得分:2)
这是一个函数调用,你有什么:
message(noWin);
这是一个字符串赋值:
message = noWin;
OR
message += noWin; //appended to the end
您希望后者之一将值赋给变量,以供日后使用; C#没有使用()表示法。如果您希望消息是一个数组,那么您需要:
string[] message;
然而,这样做会容易得多:
var messages = new List<string>();
messages.Add(noWin);
答案 2 :(得分:0)
我查看了你的代码,在.NET中,你有一个方法或一个变量,一个变量被它的名字调用,而一个函数或函数被它调用&# 39; s名,后跟()。在这些括号之间可以是函数的参数。
当你的noWin是一个字符串/文本时,你的消息没有任何内容。
当您想要显示该字符串时,您应该使用:
Console.WriteLine(noWin);
我希望它有所帮助。
答案 3 :(得分:0)
也许你应该使用如下:
MessageBox.Show(noWin);
在你的情况下使用switch语句而不是if else如果更可读。 希望它有所帮助。