首页 > 解决方案 > 由于 C# 脚本中的另一个数组导致空引用异常

问题描述

我创建了一个randomNumbersList将通过 Unity Inspector 访问的数组。我想将此数组的大小分配给我的第二个数组evenNumberList,这可能是代码行出现此错误的原因evenNumberList[i] = randomNumbersList[i];

public class Basics : MonoBehaviour
{
    public int[] randomNumbersList;
    int[] evenNumberList;
    bool numberFounded;
    int evenNumbers = 0;
    int duplicateNumber;
    int numberOfEvens = 0;

    void Start()
    {   
        SearchNumber();
        FindEvenNumbers();
        FindMaxMinNumber();
        FindMaxMinEvenNumber();
    }

    void FindEvenNumbers()
    {
        for (int i = 0; i < randomNumbersList.Length; i++)
        {
            if (randomNumbersList[i] == duplicateNumber)
                Debug.Log("Number " + randomNumbersList[i] + " Already Exists...");
            else
            {
                if (randomNumbersList[i] % 2 == 0)
                {
                    evenNumberList[i] = randomNumbersList[i];
                    duplicateNumber = randomNumbersList[i];

                    for (int j = 0; j < randomNumbersList.Length; j++)
                    {
                        if (duplicateNumber == randomNumbersList[j])
                            ++numberOfEvens;
                    }

                    Debug.Log(randomNumbersList[i] + " is an Even Number, founded at index " + i + " and it appears " + numberOfEvens + " times");
                    numberOfEvens = 0;

                    ++evenNumbers;
                }
            }
        }

        Debug.Log("Total " + evenNumbers + " Even Numbers have been Founded");
    }

标签: c#unity3d

解决方案


在 Start 方法中初始化 evenNumberList

void Start()
{
  evenNumberList = new int[randomNumbersList.Length];
  ...

推荐阅读