C#のstaticキーワードについて。(static修飾子)
こんにちは。みなみんです。
C#入門シリーズの続きです。
今回はC#の「static」キーワードについて記事にしました。
目次
staticについて
staticとは英語で「静的な」という意味です。
staticキーワードには色んな場面で使います。
staticな変数
クラスのメンバ変数にstaticキーワードを付加する事ができます。メンバ変数をstaticにすると、その変数はインスタンスに依存しなくなります。
要するに、インスタンス化せずに呼び出し、参照する事ができるんですね。
サンプルを作ってみました。(Gist)
インスタンスからアクセスしようとしても、変数が見当たりませんってなります。
よって、staticな変数のアクセスはクラス名からアクセスするんですね。
これは、インスタンス毎に値を変更する必要が無く、共通的な変数にする場合にはstaticな変数にします。
(円周率とかネイピア数とか重力加速度とか、、のような数学定数など)
staticな関数
これも、インスタンスに依存せずにクラス名から呼び出す事ができます。
サンプルをご覧ください。(Gist)
クラス名から関数を呼び出していますよね
staticなクラス
classキーワードに対してstaticを付けるとクラス丸ごとstaticになります。
そして、インスタンスを作る事が出来ません。
変数もインスタンスからアクセスできません。
関数もインスタンスからはアクセスできません。
全てがstaticなんですね。
そして、クラスの定義全てがstaticになるので、変数や関数がstaticではないものを定義してしまうとエラーになります。
この記事に誤りがあるかもしれません。その辺はご了承ください。
本記事で紹介されている方法・手法はあくまでも個人的なものです。