C# 在C中作为2D方法参数数组传递3D多维数组的2D部分
我希望在我的代码中执行以下操作:C# 在C中作为2D方法参数数组传递3D多维数组的2D部分,c#,multidimensional-array,parameter-passing,C#,Multidimensional Array,Parameter Passing,我希望在我的代码中执行以下操作: public static class DataClass { public static byte[,,] Array3d = { { {0,0},{0,0}},{{0,0},{0,0}}}; } class MyClass { public MyClass() { someMethod(DataClass.Array3d[0]); someMethod(DataClass.Array3d[1]);
public static class DataClass
{
public static byte[,,] Array3d = { { {0,0},{0,0}},{{0,0},{0,0}}};
}
class MyClass
{
public MyClass()
{
someMethod(DataClass.Array3d[0]);
someMethod(DataClass.Array3d[1]);
}
void someMethod(byte[,])
{
}
}
我想知道在调用someMethod时是否有某种方法可以实现我正在尝试的功能。如果没有,我该怎么办?使用锯齿状数组:
static byte[,][] array3d
请改用锯齿状阵列:
static byte[,][] array3d
您可以将3D数组传递给该方法。没有任何东西可以阻止您仅对方法中的相关2D子部分执行操作
您也可以使用锯齿阵列,但这会带来高昂的成本,如果您首先使用3D阵列,我不确定这是否可以接受。您可以将3D阵列传递给该方法。没有任何东西可以阻止您仅对方法中的相关2D子部分执行操作
您也可以使用锯齿状数组,但这会带来很大的成本,如果您首先使用3D数组,我不确定这是否可以接受。在这种情况下,可以使用的是静态字节[][,]array3d。我在这里尝试过,但有一个很大的不便,我不能用我计划的简单方式初始化它。我不得不使用新的运算符和静态构造函数。在这种情况下可以使用的是静态字节[][,]array3d。我在这里尝试过,但有一个很大的不便,我不能用我计划的简单方式初始化它。我被迫使用新的操作符和静态构造函数。是的,但是如果数组和方法位于不同的类中,那么它将导致耦合问题,就像我在这里的项目中一样。我将纠正这个例子,以获得更好的表示。是的,但是如果数组和方法位于不同的类中,那么它将导致耦合问题,就像在我的项目中一样。我将更正该示例以获得更好的表示。