Wam*_*Wam 5 c# arrays unsafe multidimensional-array
我正在重构我们目前使用的库,我遇到了以下问题.
我们曾经有过以下的东西:
class Blah
{
float[][] data;
public float[] GetDataReference(int index)
{
return data[index];
}
}
Run Code Online (Sandbox Code Playgroud)
由于各种原因,我已经用1维数组版本替换了这个锯齿状阵列版本,连接内部数组.我的问题是:我怎样才能返回对子数组的引用data?
class Blah
{
float[] data;
int rows;
public float[] GetDataReference(int index)
{
// Return a reference data from offset i to offset j;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为不安全和指针的东西可能有用,是否可行?
Jon*_*eet 10
不,你不能这样做 - 但你应该考虑使用ArraySegment.
请注意,数组对象包含有关其长度等的元数据,然后是数据本身.你不能创建一个现有数组的片段,并且仍然有数据旁边的元数据,如果你看到我的意思 - 必须有一个额外的间接级别(这是ArraySegment提供的).
(我有点惊讶的是,ArraySegment没有做更多的包装,例如通过实现IList<T>,但是我们去了.如果你愿意的话,很容易创建这样的结构.)
| 归档时间: |
|
| 查看次数: |
3903 次 |
| 最近记录: |