班级成员会占用记忆吗?

5 .net c# memory asp.net

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

Dav*_*ast 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();
Run Code Online (Sandbox Code Playgroud)

函数SayName()继续执行Call StackPerson p对象及其属性 ( Name) 将保留在内存中,直到Garbage Collection进入并清理它。

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

伪代码:

using(DatabaseConnection dbConn = new DatabaseConnection()
{
    // Process your calls and data
}
// The object is Disposable and it's resources are cleared 
Run Code Online (Sandbox Code Playgroud)

  • “‘Reader’或‘Connection’的某个时间[原文如此]”-简单地概括为“IDisposable”可能更清楚,IMO (2认同)