Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法将带[]的索引应用于鱼雷.Mezo类型的表达式_C#_Class_Object_Indexing - Fatal编程技术网

C# 无法将带[]的索引应用于鱼雷.Mezo类型的表达式

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

只是一个很快的问题。 我有一个名为“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());
                }

            }
        }

    }

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());
}