C# 使用未分配的局部变量,如何初始化数组

C# 使用未分配的局部变量,如何初始化数组,c#,C#,我在这里的代码有点问题: using static System.Math; using static System.Convert; namespace ConsoleApplication1 { class Program { static void Main() { int[,] matrice; for (int i = 1; i <= 5; ++i) {

我在这里的代码有点问题:

using static System.Math;
using static System.Convert;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int[,] matrice;
            for (int i = 1; i <= 5; ++i)
            {
                for (int j = 1; j <= 4; ++j)
                {
                    if (i == j)
                    {
                        matrice[i, j] = ToInt32(Pow((-1), i)) + 1;
                    }
                    else if (i > j)
                    {
                        matrice[i, j] = ToInt32(Pow((-1), i + j));
                    }
                    else
                    {
                        matrice[i, j] = j;
                    }
                }
            }
        }
    }
}
使用静态系统。数学;
使用静态系统。转换;
命名空间控制台应用程序1
{
班级计划
{
静态void Main()
{
int[,]矩阵;

对于(int i=1;i是,您必须初始化数组。初始化数组时,您为数组分配内存以存储数据要初始化数组很简单,只需创建一个
新的
数组:

int[,] matrice = new int[6,5];
另外,从查看
for
循环的设置方式来看,您希望标记编号为[1..N],其中N是上界。实际上,C中的标记总是从零开始,因此当您声明数组时,标记从[0..N-1]开始


因此,在这个例子中,我必须在每个上限中添加一个,这样代码就不会中断。更理想的选择是将for循环更改为0..N-1,这样就不会有空元素。

int[,]matrice=new int[6,5]
请参见Ron Beyer的答案。投票以键入方式结束。还请注意,c不支持更改起始标记,您希望matrice包含[1..N]中的标记,但c中的索引从0开始,然后转到N-1。@dasblinkenlight-这不是键入,用户不知道如何初始化数组。键入就像他写了“matrice”一样[I,k]=j;”而不是“矩阵[I,j]=j”。