如何将具有值类型和引用类型的对象存储在.NET中?

Sau*_*mar 3 .net c# vb.net oop class

在.NET中,整数数据类型是值类型(堆栈),String是引用类型(堆).

因此,如果A类有一个整数,并且其中有一个字符串类型对象,并且B类创建了一个A类对象,那么A类的这个对象将如何存储在内存中?在堆栈中,还是在堆中?

这是在我的微软采访中提出的.需要了解我的表现.

Rex*_*x M 9

Eric Lippert 刚写了这篇文章:

简单地说,是否使用堆栈或堆的选择与存储的东西的类型有任何根本的关系.

真实的故事是:

"在桌面CLR上的C#的Microsoft实现中,当值是局部变量或者不是lambda或匿名方法的封闭局部变量的临时变量时,值类型存储在堆栈中,并且方法体不是一个迭代器块,抖动选择不注册该值."

最重要的是,他强调你根本不应该关心某种类型的生活方式.你应该关心一定生活中的事物.