まさにそれが静的メソッドの要点だからです。
インスタンス メソッドでは、メソッドを呼び出すクラスのインスタンスを知る必要があります。
instance.Method();
その後、クラス内のインスタンス変数を参照できます。
一方、静的メソッドはインスタンスを必要としませんが、インスタンス変数にアクセスできません。
class.StaticMethod();
この例は次のようになります。
public class ExampleClass
{
public int InstanceNumber { get; set; }
public static void HelpMe()
{
Console.WriteLine("I'm helping you.");
// can't access InstanceNumber, which is an instance member, from a static method.
}
public int Work()
{
return InstanceNumber * 10;
}
}
このクラスのインスタンスを作成して、Work()
その特定のインスタンスでメソッドを呼び出すことができます
var example = new ExampleClass();
example.InstanceNumber = 100;
example.Work();
ただし、キーワードは、クラスの特定のインスタンスではなくクラスにバインドされているためstatic
、メソッドを呼び出すためにインスタンス参照が必要ないことを意味しますHelpMe()
ExampleClass.HelpMe();