C#:自定义2维阵列故障
我正在尝试使用以下代码创建自定义类C#:自定义2维阵列故障,c#,arrays,class,C#,Arrays,Class,我正在尝试使用以下代码创建自定义类单元格的二维数组: public class Cell { int top; int bottom; } public Form1() { Cell[,] elements; elements = new Cell[10,10]; Random r = new Random(); for (int i=0; i!=10; i++) { for (int j=0; j!=10; j++)
单元格
的二维数组:
public class Cell
{
int top;
int bottom;
}
public Form1()
{
Cell[,] elements;
elements = new Cell[10,10];
Random r = new Random();
for (int i=0; i!=10; i++)
{
for (int j=0; j!=10; j++)
{
elements[i,j].top = r.Next();
}
}
}
但我总是收到以下错误:
不一致的可访问性:。。。还有一些关于“细胞不易接近”
如何正确定义自定义类的二维数组?我怀疑您实际上还没有完全掌握这些代码。我怀疑您在实际代码中的
Cell
声明中遗漏了“public”,并且您有一个public方法在签名的某个地方使用它。大概是这样的:
class Cell { ... }
public class Foo
{
public Cell[,] DoStuff()
{
}
}
或者,您可能将Cell
作为公共类,但嵌套在非嵌套类中
我不认为这与数组有任何关系
然而,如果你发布完整的错误信息而不是“和某事有关”,那就更清楚了。。。如果你发布一个简短但完整的程序来演示这个问题,也会有所帮助
编辑:正如其他人指出的,您发布的代码不会编译,但原因不同。我怀疑您是否编造了一条关于不一致可访问性的错误消息,因此我强烈怀疑您发布的代码实际上与您的真实代码完全不同——至少在可访问性方面是这样
同样,如果看不到真正的代码,很难给出准确的答案。我怀疑您实际上还没有完全掌握这些代码。我怀疑您在实际代码中的
Cell
声明中遗漏了“public”,并且您有一个public方法在签名的某个地方使用它。大概是这样的:
class Cell { ... }
public class Foo
{
public Cell[,] DoStuff()
{
}
}
或者,您可能将Cell
作为公共类,但嵌套在非嵌套类中
我不认为这与数组有任何关系
然而,如果你发布完整的错误信息而不是“和某事有关”,那就更清楚了。。。如果你发布一个简短但完整的程序来演示这个问题,也会有所帮助
编辑:正如其他人指出的,您发布的代码不会编译,但原因不同。我怀疑您是否编造了一条关于不一致可访问性的错误消息,因此我强烈怀疑您发布的代码实际上与您的真实代码完全不同——至少在可访问性方面是这样
同样,如果看不到真实的代码,很难给出准确的答案。可访问性错误与数组创建无关。该错误最常见的场景是带有私有或内部类型参数的公共方法。可访问性错误与创建数组无关。该错误最常见的场景是带有私有或内部类型参数的公共方法。属性的默认可访问性是私有的。试试这个:
public class Cell
{
public int top;
public int bottom;
}
更好的是,使它们成为自动属性:
public class Cell
{
public int top { get; set; }
public int bottom { get; set; }
}
属性的默认可访问性是private。试试这个:
public class Cell
{
public int top;
public int bottom;
}
更好的是,使它们成为自动属性:
public class Cell
{
public int top { get; set; }
public int bottom { get; set; }
}
我建议您使用
top
和bottom
字段创建属性。它们有一个private
访问权限,因此出现错误:
public class Cell
{
public int top { get; set; };
public int bottom { get; set; };
}
我建议您使用
top
和bottom
字段创建属性。它们有一个private
访问权限,因此出现错误:
public class Cell
{
public int top { get; set; };
public int bottom { get; set; };
}
而不是“有关……”,你应该把确切的错误文本。这不是解决你的问题,但你可能要考虑制作<代码>细胞< /代码> A<代码> Stutt:而不是“关于……的东西”。你应该把正确的错误文本放进去。这不是解决你的问题,但你可能想考虑制作<代码>单元格< /COD> >代码> Stutt:他试图访问上面的字段,这是私有的。马希米莲:非常正确。再说一遍,我怀疑我们还没有看到真正的代码。他正试图访问顶部的字段,这是私有的。@Maximilian:非常正确。不过,我怀疑我们还没有看到真正的代码。