【发布时间】:2015-04-29 15:07:13
【问题描述】:
如果我有一个类Person,并且这个类的数据成员为FirstName,LastName。
public Class Person
{
public string firstName {get; set;}
public string lastName {get; set;}
}
类Person 是引用类型,但firstName 和lastName 是值类型。那么这将如何存储呢? Person 类会存储在堆上,firstName 和 lastName 会存储在堆栈上吗?有人可以帮我理解这是如何工作的吗?
【问题讨论】:
-
全部在堆上。对于此类问题,Google 将是比 SO 更好的资源。
-
Here 是关于值类型主题的一些不错的读物。我觉得最重要的一点是 C# 努力让它变得无关紧要——你不必关心堆栈与堆。
-
另外,
string是 reference type。 -
顺便说一句,字符串是不可变的引用类型。这个词非常重要!!!不可变!!!