班级成员会占用记忆吗?

时间:2012-06-23 04:51:47

标签: c# asp.net .net memory

一个类通常由成员变量&组成。方法。当我们创建一个类的实例时,为类的成员变量分配内存。成员方法是否也占用内存?这些方法存储在哪里?

2 个答案:

答案 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 }}。如果您的对象是ConnectionReader,则需要考虑Connection声明。

的伪代码:

using

答案 1 :(得分:0)

Class只是一个蓝图,只要类型类的变量没有定义,它就不会占用任何空间。一旦定义了类类的对象/实例,类成员将占用内存中的一些空间。 并且实例的大小等于在类中定义的成员大小的总和。