首页 > 解决方案 > 在 c# 中带有数组的 null ReferenceException

问题描述

using System;
namespace ss{
class NUM{
  public int[] numbers;
}
class MainClass {
  public static void Main (string[] args) {
    var num = new NUM();
    num.numbers[90] = 12;
    Console.WriteLine (num.numbers[90]);
  }
}
}

当我执行这段代码时,我得到了这个错误,它从来没有发生在我身上

System.NullReferenceException: Object reference not set to an instance of an object
  at ss.MainClass.Main

标签: c#

解决方案


所以你的问题很简单!

您已经初始化了类,但没有初始化数组,所以它指的是 null!

有两种解决方案。

首先将初始化添加到类[在构造函数中]它自己!

using System;
namespace ss{
class NUM{
  public int[] numbers;
 
  public NUM(int length){
      numbers = new int[length];
  }
}
class MainClass {
  public static void Main (string[] args) {
    var num = new NUM(100);
    num.numbers[90] = 12;
    Console.WriteLine (num.numbers[90]);
  }
}
}

其次,您可以在 MainClass 中初始化数组:

using System;
namespace ss{
class NUM{
  public int[] numbers;
}
class MainClass {
  public static void Main (string[] args) {
    var num = new NUM();
    num.numbers = new int[100];
    num.numbers[90] = 12;
    Console.WriteLine (num.numbers[90]);
  }
}
}

推荐阅读