Именно потому, что в этом весь смысл статических методов.
Методы экземпляра должны знать, в каком экземпляре класса вы вызываете метод.переменные в классе.
Статические методы, с другой стороны, не требуют экземпляра, но не могут получить доступ к переменным экземпляра.
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();