Jas*_*son 0 c# reference-type composition
所以我对C#很新,我得到的引用类型是存储对内存中某个对象的引用的类型(通常在堆上).我的问题是,如果我有一个类将其他类作为其成员变量,那些类成员变量是否也存储引用?我问,因为很多时候你只希望你的类成员变量与他们拥有的对象的生命周期联系在一起,让这些成员变量存储对内存中其他地方的对象的引用是没有意义的.在查找这些变量的值时,这只会增加不必要的间接性.现在我知道解决这个问题的一种方法是制作那些成员变量结构,但是如果这些成员变量需要继承或其他只有类的功能呢?任何见解都表示赞赏.
很多时候你只希望你的类成员变量与他们拥有对象的生命周期联系在一起
好了,成员变量被绑定到所属对象的生命周期.只要您的拥有对象实例被垃圾收集 - 只要没有其他成员对象的引用 - 它们也有资格进行垃圾回收.
随着您对语言和这些概念越来越熟悉,我认为您会发现在几乎所有情况下使用引用类型都是非常可取的.在一组有限的情况下,您需要定义一个值类型,如结构,而不是类,并且选择struct over class的决定与类实例的生命周期无关.有关在类和结构之间进行选择的指导,请参阅MSDN.
| 归档时间: |
|
| 查看次数: |
294 次 |
| 最近记录: |