Minamin1234の日記

趣味を記事にしてる。

C#のコンストラクタ・デストラクタについての話。

f:id:Minamin1234:20210827212710p:plain

こんにちは。みなみんです。
C#入門シリーズの続きです。

 

今回は、クラスや構造体でのコンストラクタ・デストラクタについて記事にしました。

目次

 

コンストラクタについて。

コンストラクタとは。

クラスや構造体を呼び出す(インスタンス化)する際に呼ばれる、初期化する為の関数である。

 

コンストラクタが呼ばれるタイミング

newによってインスタンス化された時。

 

コンストラクタの定義

コンストラクタは定義したクラス名の関数がそのままコンストラクタになります。
実際にコンストラクタを定義したクラスを定義してみました。(Gist)

いくつかの引数のパターンで定義する事もできます。(同じ関数名で異なる引数のパターンで関数を定義する事をオーバーロードと呼ぶ。)

コンストラクタを使う事によって、値への代入が楽になりますね。

public クラス名(){ }

 

デストラクタについて。

デストラクタとは。

先ほどの「コンストラクタ」の逆です。

クラスのインスタンスが破棄される際に呼ばれる関数です。

 

デストラクタが呼ばれるタイミング

インスタンスが破棄される時。

だが、インスタンスの破棄は.NET側(ガベージコレクション)に管理されているようで、あるタイミングで自動的に破棄されるので、正直いつ呼ばれるかは分かりません。

そして、筆者自身もあまりデストラクタの定義はした事がありません・・

 

デストラクタの定義

デストラクタの定義は

~[クラス名](){}

で定義します。アクセスレベルや戻り値なども不要です。 (Gist)

 

 

 

 

この記事に誤りがあるかもしれません。その辺はご了承ください。

本記事で紹介されている方法・手法はあくまでも個人的なものです。