【发布时间】:2019-07-27 12:03:50
【问题描述】:
我是 C# 的初学者,只是一些问题,假设我们有一个类 'Person',
我知道我们什么时候喜欢:
Person p = new Person();
我们在堆上创建一个 p 对象,p 将被垃圾回收。
所以我的问题是:
Q1- 如果我想通过避免使用“new”关键字在堆栈上创建类的实例,我应该喜欢吗(我知道通过将 Person 声明为 Struct 会做同样的工作,但我只是希望类表现以同样的方式):
Person p = Person();
Q2- 当我这样做时:
Person p;
是否调用了默认构造函数?还是没有调用默认构造函数,只分配了一块栈内存?
【问题讨论】:
-
如果你将
Person设为结构,它应该放在栈上而不是堆上。
标签: c# garbage-collection stack heap-memory