Как в static методе вызвать другой метод C#?
static void Main()
{
}
В методе Main нужно вызвать метод Setup
void Setup()
{
}
Как это сделать?
Ответы (2 шт):
Я создал ссылку на класс в котором находится метод Setup
и вызвал его через ссылку
var p = new Program();
p.Setup();
Всё заработало.
1 способ (создание приватного метода внутри метода, доступ к которому будет ТОЛЬКО внутри самого метода Main)
static void Main()
{
static void Setup()
{
}
}
2 способ:
static void Main()
{
Setup();
}
static void Setup()
{
}
Почему ваш способ не совсем правильный - вы создаёте НОВЫЙ экземпляр класса, новую корзинку, которая занимает место в вашей тележке (памяти). Захотите обратиться снова к этому элементу - новая корзинка? Как-то звучит даже не очень.
Да, у нас есть гарбадж коллектор, который вызывает финалайз у всех элементов, ссылка на которые никуда не ведут, но...зачем?
А теперь представьте, что этот метод возвращает какие-то значения или устанавливает их для свойств в этом классе, которые где-то используются. При реализации, которую вы указали в ответе, вы не сможете получить доступ к этим элементам, потому что создали НОВЫЙ экземпляр класса.
Представьте, что каждый экземпляр (new(...)) - новая корзинка с яблоками. Чтобы получить яблоко из корзинки вы не должны создавать новую корзинку. Вы должны обратиться к уже созданной корзинке. С экземплярами класса аналогичная ситуация. Можете дополнить ваш ответ, рассказав, что именно вы хотите сделать - возможно, это поможет решить вашу проблему.