Вставить другие методы в статический Main ()? - PullRequest
0 голосов
/ 03 мая 2019

Прежде всего, я хотел бы извиниться за такой примитивный вопрос, но я полный новичок, и я не смог найти решение, которое я бы понял.

IЯ учусь C # (из-за Unity), и я хотел немного поэкспериментировать и создать небольшую программу самостоятельно.Но после написания кода в «Basic» Visual Studio вместо «Unity» Visual Studio я наткнулся на проблему, которую не смог исправить или понять.

string hello = "Hello, World!";

static void Main()
{
    otherMethod();
}

void otherMethod()
{
    Console.WriteLine(hello);
}

В Unity я мог сделать это без проблем, потому чтоМетод start допускал нестатические методы внутри него, но теперь ...

... если я изменю метод удаления static из метода Main, программа не запустится.

... если ядобавьте статическое значение к другому методу, другой методу не удастся получить доступ к строке привет.

Я знаю, что это примитивно, и в приведенном выше коде я мог бы просто исправить это, поместив строку приветствия внутри другого метода (и т. д..) но это был только пример.

Если бы мне пришлось иметь строку hello вне методов и использовать otherMethod внутри метода Main, как я мог бы этого добиться?Это возможно или я делаю это совершенно неправильно?

Ответы [ 2 ]

2 голосов
/ 03 мая 2019

Нельзя вызывать нестатические методы из статического метода.Сначала вам нужно создать экземпляр класса, а затем вызвать методы.Рабочий пример вашего кода:

 class Program
{
    string hello = "Hello, World!";
    static void Main(string[] args)
    {
        var test = new Program();
        test.OtherMethod();
    }

    void OtherMethod()
    {
        Console.WriteLine(hello);
    }
}

Вот достойная статья о статических и нестатических https://hackernoon.com/c-static-vs-instance-classes-and-methods-50fe8987b231

0 голосов
/ 03 мая 2019

Вы пытались сделать вашу переменную статической?

        public static string hello = "hello";

Вероятно, это не «правильный» способ сделать это, но вы должны быть в состоянии сделать это грубо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...