Uaktualniam bibliotekę, której obecnie używamy, i mam do czynienia z następującym problemem.Utwórz odwołanie do podagray w języku C# (przy użyciu niebezpiecznych?)
Zwykliśmy mieć następujące rzeczy:
class Blah
{
float[][] data;
public float[] GetDataReference(int index)
{
return data[index];
}
}
z różnych powodów, mam zastąpić tę poszarpaną wersję tablicy z 1 dimensionnal wersji tablicy, złączenie wewnętrzne tablice. Moje pytanie brzmi: jak mogę nadal zwracać odwołanie do tablicy podrzędnej data
?
class Blah
{
float[] data;
int rows;
public float[] GetDataReference(int index)
{
// Return a reference data from offset i to offset j;
}
}
Myślałem, że niebezpieczne i wskaźniki mogą być przydatne, czy można to zrobić?
+1 nauczyć się czegoś nowego każdego dnia :-) – WestDiscGolf
Zgoda, nie wiedział, że obaj. Zachowam moją odpowiedź (powinna również działać), ale wydaje się, że jest to "właściwa droga" (tm). –
Układ pamięci poszarpanej tablicy sprawia, że niepraktyczne jest używanie niebezpiecznych konstrukcji, aby dostać się do ich zawartości. Jeśli zastosowano tablice wielowymiarowe, można to zrobić i może być beneficjentem w (rzadkich) przypadkach narożnych, w których słaba wydajność platformy .NET na tablicach z wieloma dimami jest zbyt wolna. Ale nadal nie możesz zwrócić plasterka bez kopiowania i dodawania nowych metadanych. – Abel