Mono 2.6.7:数组初始化程序错误?

发布于 2024-12-09 23:46:00 字数 507 浏览 0 评论 0原文

原标题:“Mono 2.7:数组初始化程序错误”

我遇到了单声道问题,其中数组初始化(至少对于多维数组)在方法调用中内联时不起作用。看起来单声道编译器在方法调用后发出赋值。

例如:

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

我找不到任何解决此问题的发行说明,并且我当前正在运行旧版本(我不想更新它,除非它是有益的)。有谁知道这个错误是否已修复?

Originally Title : "Mono 2.7: Array Initializer Bug"

I'm having an issue with mono where array initialization (at least for multidimensional arrays) does not work when inlined in a method call. It looks like the mono compiler is emitting the assignments after the method call.

For instance:

MathLib.PrintMatrix(new double[,] { {1.0, 1.0}, {1.0, 1.0} });

// Prints the following
// 0.0, 0.0
// 0.0, 0.0

However, the following code works correctly:

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

I couldn't find any release note addressing this issue, and I'm currently running an older version (which I don't want to update unless it's going to be benificial). Does anyone know if this bug has been fixed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

俏︾媚 2024-12-16 23:46:00

我没有 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

和更新的版本:来自 git 的 2.11

[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 测试版。

I don't have 2.7 (a beta for 2.8) around but I have something older (2.6.7 in Ubuntu)

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

and something a lot newer: 2.11 from 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

So I believe your issue is related to using an old, unsupported beta release of Mono.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文