c#中double [*,*]与double [] []之间的差异

use*_*961 5 c#

我用了

double [,] marks=new double[26,5] 
int[] function = object.verify(marks) 

public void verifymarks(double[][] marks)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是无法从双[ , ] 转换为双[] []我试图在互联网上搜索但无法找到任何解决方案.我刚刚开始使用c#.请帮忙.THankx提前

It'*_*ie. 11

double[][]是锯齿状的.它实际上是一个数组数组.

double[,]是多维的.它得到特殊的编译器处理.

它们具有不同的内存布局.double[][]是一个数组,它保存对其他数组的引用,同时double[,]以单维方式布局以便于使用.

另一个不同之处是它们可以容纳的数据.锯齿状数组可以是这样的:

1231243245345345345345
23423423423423
2342342343r234234234234234234
23423
Run Code Online (Sandbox Code Playgroud)

虽然多维数组必须是一个完美的表,如下所示:

34534534534534
34534534534533
34534534534534
34534534534545
Run Code Online (Sandbox Code Playgroud)

解决它的方法是使用可空的ints.

现在,解决您的问题:

你的方法的签名更改为public void verifymarks(double[,] marks),并在使用该方法改变任何东西marks[x][y]marks[x,y].