【问题标题】:Simple int array in unity 3d [duplicate]unity 3d 中的简单 int 数组
【发布时间】:2013-03-03 17:28:34
【问题描述】:

如何在类中创建一个 int 数组。

我必须向该数组添加值。

不是特定的键。

我将数组声明为

public int[] iArray;

从函数 i 必须将 i 的值插入到数组中。我的 i 价值观发生了变化。所以我必须将它们保存在一个数组中。

iArray[] = i; 

但它显示错误。

【问题讨论】:

  • 如果您发布一些代码,我或许可以帮助您确定问题的根源
  • 我建议先尝试在 Visual Studio 中编写一些基本代码并阅读有关错误的帮助。如果 Unity3d 环境向您显示错误,请检查错误消息中的错误代码(如 CS1234)并搜索它们 - 通常您会获得有用的详细信息。 (即,您必须在使用之前为变量赋值,或者在尝试设置数组元素时使用索引)。旁注:请避免在问题中使用“我一无所知/谢谢”文本,而是内联完整的错误消息。

标签: c# unity3d


【解决方案1】:

处理数组非常简单,只需像这样声明它们:

int[] values = new int[10];
values[i] = 123;

但是,C# 中的数组具有固定大小。如果您希望能够拥有可调整大小的集合,则应使用 List<T> 而不是数组。

var values = new List<int>();
values.Add(123);

或作为类属性:

class SomeClass
{
    private List<int> values = new List<int>();

    public List<int> Values { get { return this.values; } }
}

var someInstance = new SomeClass();
someInstance.Values.Add(123);

【讨论】:

  • @Sona i 只代表一个索引器(如for(var i = 0...)。引发 NullReferenceException 是因为 Values 属性未初始化。我已经通过示例进行了更新,以展示如何正确初始化列表。
  • 必须使用索引器来设置数组中的项目(如我的示例中所示)。如果您不想这样做,请改用List&lt;T&gt;.Add
  • @Sona 你遇到了什么错误?
  • 这意味着你的索引太高或太低。数组有多大,索引值是多少?
  • 我给定了 public int[] iArray = new int[15];
猜你喜欢
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
相关资源
最近更新 更多