最初标题:“Mono 2.7:Array Initializer Bug”
我遇到单声道问题,其中数组初始化(至少对于多维数组)在方法调用中内联时不起作用。看起来单声道编译器在方法调用之后发出了赋值。
例如:
MathLib.PrintMatrix(new double[,] { {1.0, 1.0}, {1.0, 1.0} });
// Prints the following
// 0.0, 0.0
// 0.0, 0.0
但是,以下代码可以正常工作:
var myArray = new double[,] = { {1.0, 1.0}, {1.0, 1.0} };
MathLib.PrintMatrix(myArray);
// Prints the following
// 1.0, 1.0
// 1.0, 1.0
我找不到解决此问题的任何发行说明,而且我目前正在运行旧版本(我不想更新,除非它会有益)。有谁知道这个bug是否已修复?
答案 0 :(得分:1)
我没有2.7(2.8的测试版),但我有更旧的东西(在Ubuntu中为2.6.7)
poupou@mizar:~/src$ gmcs --version
Mono C# compiler version 2.6.7.0
poupou@mizar:~/src$ cat x.cs
using System;
class Program {
static void PrintMatrix (double[,] values)
{
Console.WriteLine ("{0}, {1}\n{2}, {3}", values [0,0], values [0,1], values [1,0], values [1,1]);
}
static void Main ()
{
PrintMatrix (new double[,] { {1.0, 2.0}, {3.0, 4.0} });
}
}
poupou@mizar:~/src$ gmcs x.cs
poupou@mizar:~/src$ mono x.exe
1, 2
3, 4
和更新的东西:2.11来自 git
[mono] ~/src @ mcs --version
Mono C# compiler version 2.11.0.0
[mono] ~/src @ mcs x.cs
[mono] ~/src @ mono x.exe
1, 2
3, 4
因此,我认为您的问题与使用旧的,不受支持的Mono测试版有关。