【问题标题】:Creating an array with different data types for index and elements为索引和元素创建具有不同数据类型的数组
【发布时间】:2016-05-20 10:48:49
【问题描述】:

我想创建一个以Int16 值为索引的数组,每个元素都是一个SByte

如果这是可能的,我将如何构建我的陈述来实现这一目标? 这是我目前所拥有的。

//This saves the array size after creation for reference by other functions in the class
public static Int16 ArraySize = 0;

//input array size input by user from UI, min 0, max 1024
public static void InitArray(Int16 inputArraysize)
{
    sbyte[] Arrayarray = new sbyte[inputArraysize];
    Array.ArraySize = inputArraysize;
    Debug.output("RAM ARRAY CREATED");
}

【问题讨论】:

  • 你要的不是数组。
  • 你能解释一下为什么你想改变.NET的数组索引类型吗?
  • 我打算在某种程度上用数组来模拟 RAM;但是,我希望能够索引大于 127 的值,因此使用 16 位“地址总线”。
  • 我明白了;你知道(在那种情况下)在那种情况下我如何将索引作为变量发送?我不能将inputRAMsize 作为sbyte 传递,因为值明显受限。

标签: c# arrays


【解决方案1】:

从您的 cmets 看来,您似乎认为数组类型和它的索引类型是相关的。

他们不是。索引类型独立于数组类型。 Arrays are always indexable with positive integers from 32 bits and upwards

不过,您不太可能分配 2 GB 或更大的数组。

【讨论】:

  • 由于我试图将大小值作为SByte 传递,我相信我错误地关联了这些(如您所建议的);在这种情况下,有没有办法传递它并创建大小大于 127 的值?
  • 您将 inputArraySize 传递为 Int16(我不知道为什么),因此您可以创建一个最多包含 32767 个元素的数组。
  • 啊,我明白了:- 我相信我的问题出在其他地方;非常感谢您的帮助。
猜你喜欢
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
相关资源
最近更新 更多