结构,堆和堆栈
我一直在阅读一本关于C#的书,并且遇到了在内存中存储值的主题。 一个引用类型的实例总是在堆上创建,但是一个变量的值将在其声明的任何地方生存。 只有局部变量(在方法[非匿名]中声明的变量)和方法参数存在于堆栈中。
所以我的问题是 - 如果我将这些结构声明为这样的局部变量 - 它们会全部放在栈上吗?
struct A<T> where T : struct { }
struct B<T> where T : class { }
struct C { }
我只是想知道一个struct
的内容是否会影响它将被存储在内存中的位置。
谢谢,C#大师!
结构走到你告诉他们去的地方。
如果它们在函数中声明为局部变量,则它们在堆栈中。 如果他们是班级成员,那么他们内联在班级的堆内存中。
如果一个结构体包含一个类,那么这个引用就像是一个int或任何其他成员一样在结构体中被内联。 类参考指向的东西在堆上
链接地址: http://www.djcxy.com/p/79089.html