【发布时间】:2017-03-20 16:50:16
【问题描述】:
所以我对 C# 还是很陌生,我知道引用类型是将对象的引用存储在内存中其他位置(通常在堆上)的类型。我的问题是,如果我有一个将其他类作为其成员变量的类,这些类成员变量是否也存储引用?我问是因为很多时候你只是希望你的类成员变量与它们拥有的对象的生命周期相关联,而让这些成员变量在内存中的其他地方存储对对象的引用是没有意义的。这只是在查找这些变量的值时增加了不必要的间接性。 现在我知道解决这个问题的一种方法是使这些成员变量成为结构,但是如果这些成员变量需要继承或其他仅类的特性怎么办?任何见解都值得赞赏。
【问题讨论】:
-
Now I know one way around this is to make those member variables structsstackoverflow.com/a/1932787/1260204 和blogs.msdn.microsoft.com/ericlippert/2009/04/27/… -
@Igor 不,杰森是正确的。问题不在于内部对象是否存在于堆栈中,而是外部对象是否存储引用或内部对象本身。
-
@NicoSchertler - 啊,我看错了。
标签: c# composition reference-type