C# 无法将带[]的索引应用于鱼雷.Mezo类型的表达式
只是一个很快的问题。 我有一个名为“Mezo.cs”的类,它基本上是一个“public int[,]”。 此类的特定副本是包含1或0的int[,]。 我想找到1。 所以在主程序中,我用fors遍历它,但是我在标题中得到了错误。 任何帮助都将不胜感激C# 无法将带[]的索引应用于鱼雷.Mezo类型的表达式,c#,class,object,indexing,C#,Class,Object,Indexing,只是一个很快的问题。 我有一个名为“Mezo.cs”的类,它基本上是一个“public int[,]”。 此类的特定副本是包含1或0的int[,]。 我想找到1。 所以在主程序中,我用fors遍历它,但是我在标题中得到了错误。 任何帮助都将不胜感激 static void WriteShips(Mezo mezo, StreamWriter SW) { for (int i = 0; i < 10; i++) { for (i
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());
}
}
}
}
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的数组。
您不能将类本身的实例当作锯齿数组属性来使用。您可以发布给出错误消息的代码吗?是我还是标题没有语法意义?如果我是对的,那甚至不是确切的错误信息。但是是的,看到代码是必须的。好吧,Mezo是你的类,但它本身不是锯齿状数组;因此,不允许索引。类中引用自身时是否有锯齿状数组?我没有锯齿状数组。我真的不知道我为什么要那样。我发布了类本身。@user3576186更新了我的代码示例,以更详细地解释错误:)
if (mezo.mezo[i, j] == 1)
{
SW.WriteLine(i.ToString(), j.ToString());
}