这是一个非常快速的问题。 我有一个名为" Mezo.cs"这基本上是一个' public int [,]'。 此类的特定副本是包含1或0的int [,]。 我想找到1。 所以在主程序中我用fors迭代它但我得到标题中的错误。 任何帮助将不胜感激。
static void WriteShips(Mezo mezo, StreamWriter SW)
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (mezo[i, j] == 1)
{
SW.WriteLine(i.ToString(), j.ToString());
}
}
}
}
这是在战舰计划中,我想基本上想要在txt中保存船只的坐标。 mezo [i,j]给出错误
MEZO CLASS:
class Mezo
{
public int[,] mezo;
public Mezo() // KONSTRUKTOR
{
mezo = new int[10, 10];
kitoltesUressel();
}
kitoltesUressel()是无关紧要的,只是用1和0随机填充副本。
答案 0 :(得分:0)
为了使用带索引的类实例(非常类似于框架中的任何集合),您需要具有一个与索引管理器类似的属性。
这是一个类似于数组的类的简单代码:
public class MyIndexedClass
{
private string[] _values = new string[]
{
"hello",
"hi",
"good morning",
"long time no see"
};
public string this[int index]
{
get
{
Console.WriteLine("Index called with argument value " + index);
return _values[index];
}
set
{
Console.WriteLine("Index called with argument value " + index + " and value " + value );
_values[index] = value;
}
}
}
在我的示例中,使用代码myIndexedClassInstance[0];
返回包含“hello”的字符串。
我猜你的“Mezo”类里面包含一个锯齿状数组,但没有使用“this”关键字。
您可以查看有关索引here的更多信息。
修改强>
现在更新了有关您的Mezo类的新信息,给您错误的代码应如下所示:
if (mezo.mezo[i, j] == 1)
{
SW.WriteLine(i.ToString(), j.ToString());
}
因为你传递的是Mezo的一个实例,它是包含名为mezo的数组的实例。 您不能使用类本身的实例,就好像它是锯齿状数组属性一样。