staticとは
staticキーワードは静的メンバーを作成するときに使用します。静的メンバーとは、変数や、メソッド等を、インスタンス単位で生成するのではなく、アプリケーションにただ1つだけ生成したいときに使用します。
例えばデータベースの接続先をstring変数に格納する場合、毎回string変数を生成することもできますが、アプリケーションの起動時に決定してしまうような項目の場合は、毎回作成しなくても、アプリケーションでただ1つ記憶しているだけでいいケースがあります。そのような場合はstaticキーワードを付けることで、インスタンス生成のたびにメモリ領域が確保されるのではなく、アプリケーションでただ1つのメモリ領域が確保されます。
書き方
書き方は、クラスや変数、メソッドを記述するときに、アクセス修飾子に続けて記述します。
private static int XXX;
注意事項
静的メソッドの中で使用できるフィールドはstaticフィールドのみです。
アクセスの方法
クラスのインスタンスを生成するのではなく、クラス名にドットを付けて、直接呼び出します。
サンプルコード
namespace CS25 { internal class Counter { //静的メンバー //クラス、変数等にstatic(スタティック)キーワードをつける //インスタンス単位でなく、クラス単位で生成される //つまり、アプリケーションにただ1つ private static int _count = 0; private int _value = 0; //静的メソッド internal static void Call() { //処理のなかで使えるのは静的メンバーのみ _count++; //_value++;//_valueは静的メンバーでないので使えない } internal static int GetCount() { return _count; } } }
namespace CS25 { public partial class Menu : Form { public Menu() { InitializeComponent(); //アクセスの仕方 //クラス名を使ってアクセスする Counter.Call(); //インスタンスではない } private void button1_Click(object sender, EventArgs e) { using (var f = new Form1()) { f.ShowDialog(); } } private void button2_Click(object sender, EventArgs e) { using (var f = new Form2()) { f.ShowDialog(); } } private void button3_Click(object sender, EventArgs e) { this.Text = Counter.GetCount().ToString(); } } }
namespace CS25 { public partial class Form1 : Form { public Form1() { InitializeComponent(); Counter.Call(); } } }
namespace CS25 { public partial class Form2 : Form { public Form2() { InitializeComponent(); Counter.Call(); } } }
- C#初心者のための基礎!C#文法2割の知識で8割の仕事をする方法!#1
- C#初心者のための基礎!ブロックと名前空間とクラスとメソッドを解説#2
- C#初心者のための基礎!#3値の扱い方。変数と定数をわかりやすく解説!
- C#初心者のための基礎!データ型の種類と使い分けをわかりやすく解説#4
- C#初心者のための基礎!値型と参照型の違いと使い方をわかりやすく解説#5
- C#初心者のための基礎!データ型の変換のやり方をわかりやすく解説#6
- C#初心者のための基礎!配列の使い方をわかりやすく解説#7
- C#初心者のための基礎!動的配列List<T>の使い方をわかりやすく解説#8
- C#初心者のための基礎!演算子の使い方をわかりやすく解説#9
- C#初心者のための基礎!if文とswich文の使い方をわかりやすく解説#10
- C#初心者のための基礎!while文の書き方と使い方をわかりやすく解説#11
- C#初心者のための基礎!do-While文の書き方と使い方をわかりやすく解説#12
- C#初心者のための基礎!for文の書き方と使い方をわかりやすく解説#13
- C#初心者のための基礎!foreach文の書き方と使い方をわかりやすく解説#14
- C#初心者のための基礎!オブジェクト指向の意味をわかりやすく解説#15
- C#初心者のための基礎!クラスの意味と使い方をわかりやすく解説#16
- C#初心者のための基礎!コンストラクタの意味と使い方をわかりやすく解説#17
- C#初心者のための基礎!アクセス修飾子の意味と使い方をわかりやすく解説#18
- C#初心者のための基礎!メソッドの意味と使い方をわかりやすく解説#19
- C#初心者のための基礎!フィールドの意味と使い方をわかりやすく解説#20
- C#初心者のための基礎!インスタンスの意味と使い方をわかりやすく解説#21
- C#初心者のための基礎!カプセル化の意味と使い方をわかりやすく解説#22
- C#初心者のための基礎!プロパティの意味と使い方をわかりやすく解説#23
- C#初心者のための基礎!Disposeとusingの意味と使い方を解説#24
- C#初心者のための基礎!staticスタティックの意味と使い方を解説#25
- C#初心者のための基礎!継承の意味と使い方をわかりやすく解説#26
- C#初心者のための基礎!override(オーバーライド)の使い方を解説#27
- C#初心者のための基礎!ポリモーフィズムとインタフェースの使い方を解説#28
- C#初心者のための基礎!ポリモーフィズムと抽象クラスの使い方を解説#29
- C#初心者のための基礎!例外Exceptionの意味と使い方をわかりやすく解説#30