【发布时间】:2017-12-10 11:45:58
【问题描述】:
努力将对象分配给 C# 中的数组。
代码的输出是出乎意料的,因为我得到的是 nameOfProject.ClassName(?) x3 而不是我使用 for 循环添加的 3 个怪物的名称和生命值。 调试表明没有分配怪物。有没有像我这样的人应该注意的逻辑缺陷?
class Monsters
{
public Monsters(string name, int points)
{
var monsterName = name;
var monsterLifePoints = points;
}
}
class Program
{
static void Main(string[] args)
{
Monsters[] monster = new Monsters[3];
for (int i = 0; i < monster.Length; i++)
{
Console.WriteLine("Please enter a name");
string name = Console.ReadLine();
Console.WriteLine("Please enter life points");
int points = Convert.ToInt32(Console.ReadLine());
monster[i] = new Monsters(name,points);
Console.Clear();
}
foreach (var element in monster)
{
Console.WriteLine(element);
}
Console.ReadKey();
}
【问题讨论】:
-
你的类名不应该是复数。
-
分配工作得很好。您从不存储名称,但点
-
你从来没有告诉它如何打印
Monsters,所以这就是你得到的。 -
这里有多个问题。首先,您没有将名称和点的值存储在类的属性或私有变量中。其次,您没有任何关于怪物类对象如何表示为字符串的逻辑。