Ben*_*n Y 7 c# local-variables
来自C++,返回一个局部变量是一个坏主意(当在堆栈上分配内存时).
现在使用C#我得到的印象不是一个坏主意(返回值时,而不是引用).
这是为什么?我理解C#使用GC,但我不确定在这种情况下会产生什么不同.
Bri*_*sen 14
C/C++中的问题是您可以返回指向堆栈中数据的指针.如果这样做,一旦堆栈帧被销毁,指针就无效.在托管C#中你不能做这样的事情.
在C#中返回本地人很好.如果返回值类型,则复制该值.如果返回引用,则会复制引用本身(但它仍指向堆上的同一对象).在任何一种情况下,都没有问题.
| 归档时间: |
|
| 查看次数: |
1757 次 |
| 最近记录: |