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

メモリに関しては、オブジェクトのインスタンス フィールド (プロパティ)、処理するオブジェクトの量、およびオブジェクトがいずれかの時間ReaderまたはConnection. あなたのオブジェクトが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

クラス s は単なる青写真です。型クラスの変数が定義されていない限り、スペースを占有しません。タイプクラスのオブジェクト/インスタンスが定義されると、クラスメンバーはメモリ内のスペースを占有します。また、インスタンスのサイズは、クラスで定義されているメンバーのサイズの合計に等しくなります。

于 2017-12-01T04:28:49.493 に答える