【发布时间】:2015-08-28 15:42:48
【问题描述】:
众所周知,.NET 中的类是按引用传递的,而结构是按值传递的。
在不安全的代码中,你可以有指向结构的指针,但不能指向类,因为它们是由 GC 移动的。例如,当您有一个指向数组的指针时,您要么必须将其放入 fixed 语句(如果您在堆上分配)或 stackalloc(在堆栈上分配)。
话虽如此,如果类被 GC 移动,它们如何通过引用传递?
【问题讨论】:
-
@SamAxe 包括对象在内的所有参数都默认传值
-
@johnny5:错,是的。我在这方面的错误。我会调整的。
-
“类”是一种语言结构,除了源代码之外没有任何意义。一个类编译成一个类型。一个类型可以被实例化为一个对象,并被传递。
标签: c# .net pointers reference unsafe