一个类通常由成员变量&组成。方法。当我们创建一个类的实例时,为类的成员变量分配内存。成员方法是否也占用内存?这些方法存储在哪里?
答案 0 :(得分:3)
假设我们有以下课程:
public class Person
{
public string Name { get; set; }
public Person(string name)
{
Name = name;
}
public string SayName()
{
string hello = "Hello! My name is ";
return hello + name;
}
}
Person p = new Person("John");
string yourName = p.SayName();
SayName()
功能在Call Stack
上,Person p
对象及其属性(Name
)将保留在内存中,直到Garbage Collection
进入并清理它。
就内存而言,您应该更关心对象的实例字段(属性),您正在处理的对象数量,以及您的对象是否为Reader
或{{1 }}。如果您的对象是Connection
或Reader
,则需要考虑Connection
声明。
的伪代码:
using
答案 1 :(得分:0)
Class只是一个蓝图,只要类型类的变量没有定义,它就不会占用任何空间。一旦定义了类类的对象/实例,类成员将占用内存中的一些空间。 并且实例的大小等于在类中定义的成员大小的总和。