メソッドの宣言にstaticをつけると、static(静的)メソッドとなります。
static(静的)メソッドは、クラスをインスタンス化する必要がありません。
但し、通常のプロパティにはアクセスできません。
メソッドの実体がクラス側にあるイメージです。
static(静的)メソッドは手軽に呼び出せることもあり、共通で使えるような部品を作成することが多いのかと思います。
通常のメソッド
public void run;
・staticをつけなければ、staticメソッドにならない。
・クラスをインスタンス化(new)する必要がある。
・通常のプロパティ、staticプロパティの両方にアクセスできる。
staticメソッド
をつけると静的なになります。
public static void run;
・staticをつけるとstaticメソッドになる。
・クラスをインスタンス化する必要がない。
・通常のプロパティにはアクセスできない、staticプロパティにはアクセスできる。
サンプル
自動車クラス内の実行処理1(通常のメソッド)と実行処理2(staticメソッド)の呼び出し方のサンプルです。
プログラミング
言語:C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace サンプル
{
public partial class Form6 : Form
{
public Form6()
{
InitializeComponent();
}
private void Form6_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 自動車クラス
/// </summary>
class Car
{
// 自動車名
public string carName { get; set; } = "";
// 実行フラグ
public static bool runFlg { get; set; } = false;
/// <summary>
/// コンストラクタ
/// </summary>
/// <param name="name"></param>
public Car(string name)
{
// 自動車名をプロパティにセットする
carName = name;
}
/// <summary>
/// 実行処理1(通常のメソッド)
/// </summary>
public void run_1()
{
// 通常のメソッドは通常のプロパティとstaticプロパティにアクセスできます。
carName = "A"; // 通常のプロパティ
runFlg = true; // staticプロパティ
}
/// <summary>
/// 実行処理2(staticメソッド)
/// </summary>
public static void run_2()
{
// staticメソッドは通常のプロパティにアクセスできません。
//carName = "A"; // 通常のプロパティ
runFlg = true; // staticプロパティ
}
}
/// <summary>
/// ボタン1クリック処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
// 通常のメソッドはクラスをNEWしないと呼び出せません。
Car car1 = new Car("犬");
car1.run_1();
// staticメソッドはクラスをNEWしなくても呼び出せます。
Car.run_2();
}
}
}