6

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

4

2 回答 2

4

假设我们有以下类:

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进入并清理它。

在内存方面,你应该更关心对象的实例字段(属性),你正在处理的对象的数量,以及你的对象是否是某个时间ReaderConnection。如果你的对象是一个Reader或者Connection你需要考虑一个using语句。

伪代码:

using(DatabaseConnection dbConn = new DatabaseConnection()
{
    // Process your calls and data
}
// The object is Disposable and it's resources are cleared 
于 2012-06-23T04:57:31.187 回答
0

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

于 2017-12-01T04:28:49.493 回答