0

こんにちは、私はOOPSの初心者です。これを理解するのを手伝ってください

静的クラスの批判者を呼び出す方法は? または、静的クラス、メソッド、およびオブジェクトにメモリを割り当てる方法は?

4

2 に答える 2

0

C# はマネージ言語です。これは、.NET が使用されなくなったときに、ガベージ コレクターと呼ばれるものを使用してメモリを自動的に解放することを意味します。これは、たとえば、オブジェクトを解放するためにオブジェクトを明示的に削除する必要がある C++ とは異なります。C++ では、オブジェクトに対して delete を呼び出すと、オブジェクトのデストラクタが呼び出されます。C# では、.NET ガベージ コレクターがオブジェクトを破棄することを決定するたびに、デストラクタが呼び出されます (最終的には、オブジェクトへの参照がなく、オブジェクトがスコープ外になり、.NET がメモリを再利用することを決定した場合)。

静的クラスは、クラス内に静的変数を割り当てることができます。静的クラスには、呼び出されるデストラクタがありません。したがって、あなたの質問のその部分は当てはまりません。

于 2014-02-27T06:48:21.017 に答える
0

オブジェクト インスタンスにメモリを割り当てるには、コンストラクタを使用する必要があります。

  Object o = new Object();
  MyClass m = new MyClass(); 

*静的フィールド*は.Netによって割り当てられます。したがって、それらを宣言するだけです:

  public class MyClass {
    public static Object o = new Object();
    public static int i = 123;
  }  

メソッド、プロパティは C の一種の関数なので、まったく割り当てることができません

封印され抽象化されている静的クラスは作成できないため、割り当てることができません

于 2014-02-27T06:48:55.060 に答える