/ / C # polia v porovnaní s poliami C ++ a zberačom odpadu - c #, polia

C # polia v porovnaní s C ++ polia a zberač odpadkov - c #, polia

Som programátor C ++, ktorý sa snaží zabaliť hlavuokolo C # a našiel niečo, o čo ma zaujíma. Ak chcete deklarovať pole, musíte použiť nového operátora vpravo? Ale zvyknutý, že dostať odpadky kolektor zapojený?

Hypoteticky, ak som mal nejakú funkciuvytvorenie poľa len pre použitie v rámci tejto funkcie a to bolo volané tisíckrát za rám, by "t všetky tieto hovory na nového operátora vytvoriť významnú réžiu pre zberateľ odpadu?

V C ++ by to boli polia deklarované nazásobník, ktorý by spadol z rozsahu, akonáhle sa funkcia skončí a výkon réžia by bola minimálna, ale v C # I "m strach, koľko výkonu zberateľ odpadkov môže trvať v tomto prípade.

Tak som premýšľal o tom správne? Je tu zapojený zberač odpadu a spôsobí problémy? Existuje lepší spôsob, ako to urobiť?

odpovede:

0 pre odpoveď č. 1

V podstate sa nemusíte starať o zberateľa odpadkov, vie, čo to robí a je to naozaj dobré.

Ak robíte veci s obrázkami, potom áno, môžete naraziť na problémy ... môžete to však obísť, napríklad môžete použiť stackalloc http://msdn.microsoft.com/en-us/library/cx9s2sy4.aspx

ale to znamená, že váš kód bude musieť byť nastavený na „nebezpečný“.

int* frameData;
frameData = stackalloc int[200];