Minaminの日記

趣味を記事にしてる。

C#のstaticキーワードについて。(static修飾子)

f:id:Minamin1234:20210817141114p:plain

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

 

今回はC#の「static」キーワードについて記事にしました。

目次

 

staticについて

staticとは英語で「静的な」という意味です。

staticキーワードには色んな場面で使います。

staticな変数

クラスのメンバ変数にstaticキーワードを付加する事ができます。メンバ変数をstaticにすると、その変数はインスタンスに依存しなくなります。

要するに、インスタンス化せずに呼び出し、参照する事ができるんですね。

サンプルを作ってみました。(Gist)

インスタンスからアクセスしようとしても、変数が見当たりませんってなります。
よって、staticな変数のアクセスはクラス名からアクセスするんですね。

これは、インスタンス毎に値を変更する必要が無く、共通的な変数にする場合にはstaticな変数にします。
(円周率とかネイピア数とか重力加速度とか、、のような数学定数など)

 

staticな関数

これも、インスタンスに依存せずにクラス名から呼び出す事ができます。

サンプルをご覧ください。(Gist)

クラス名から関数を呼び出していますよね

 

staticなクラス

classキーワードに対してstaticを付けるとクラス丸ごとstaticになります。
そして、インスタンスを作る事が出来ません。
変数もインスタンスからアクセスできません。
関数もインスタンスからはアクセスできません。

全てがstaticなんですね。

そして、クラスの定義全てがstaticになるので、変数や関数がstaticではないものを定義してしまうとエラーになります。

 

 

 

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

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