无法将带有[]的索引应用于Torpedo.Mezo类型的表达式
本文关键字:应用于 索引 Torpedo Mezo 表达式 类型 | 更新日期: 2023-09-27 18:00:52
这只是一个非常快速的问题。我有一个名为"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 Mezo
{
public int[,] mezo;
public Mezo() // KONSTRUKTOR
{
mezo = new int[10, 10];
kitoltesUressel();
}
kitoltesUressel((无关紧要,它只是用1和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"关键字。
你可以在这里查看更多关于索引的信息。
编辑:
现在更新了关于你的Mezo类的新信息,给你错误的代码应该是这样的:
if (mezo.mezo[i, j] == 1)
{
SW.WriteLine(i.ToString(), j.ToString());
}
因为您正在传递Mezo的一个实例,该实例包含名为Mezo的数组。不能将类本身的实例当作锯齿状数组属性来使用。