C# | Почему из статического метода при вызове обычного метода выдает ошибку?
Мне был дан код, и я должен был ответить, что выведет этот код. Мой вариант оказался неверным, так как код выведет ошибку. В этом коде создаётся метод Function, переменная y со значением: 13. И в методе Main вызываю свой метод с параметром y. Этот код выдает ошибку. Но, если сделать метод статичным, он не выдаёт ошибку, и все работает. Объясните пожалуйста почему?
Код:
int Function(int x)
{
return x;
}
static void Main()
{
int y = 13;
Function(y) // Error
}
Ответы (1 шт):
Ответ можно найти в любой книге по C# и не только. Например https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/keywords/static
Модификатор static используется для объявления статического члена, принадлежащего собственно типу, а не конкретному объекту
или https://metanit.com/sharp/tutorial/3.6.php
Статические поля, методы, свойства относятся ко всему классу и для обращения к подобным членам класса необязательно создавать экземпляр класса.
В этом и подсказка.
Нельзя обратиться к методу экземпляра класса, если этого экземпляра не существует и в помине. А Function можно вызывать лишь у экземпляра класса (т.е. у конкретного объекта, который был создан при помощи ключевого слова new (например MyClass myvar = new MyClass()))