Я не могу изменить static void Main (строка[] аргументов)

#c#

#c#

Вопрос:

Я не могу изменить static void Main (строка [] аргументов) в консольном приложении. Кто-нибудь, пожалуйста, может сказать мне, как изменить это на что-нибудь еще?

Комментарии:

1. Что вы имеете в виду? Не удается ли скомпилировать файл при его изменении?

2. не могли бы вы, пожалуйста, пояснить, что вы подразумеваете под «изменить static void main»?

3. Вы можете изменить это на что-то другое. Просто используй свою клавиатуру. Проблема в том, что ваша программа больше не компилируется и не запускается.

Ответ №1:

Если вы имеете в виду, что вы не можете изменить его, чтобы он был нестатическим, или вы не можете изменить его название, это правильно: точка входа для приложения:

  • должен быть вызван Main
  • должно быть статическим
  • должно либо не иметь параметров, либо иметь один параметр типа string[]
  • должен иметь возвращаемый тип void или int .

Что вы пытаетесь изменить и почему?

Комментарии:

1. @user705641: Так что поставьте точку останова и запустите отладчик. Вам не нужно менять подпись, чтобы сделать это. Действительно неясно, что вы пытаетесь изменить и что происходит, когда вы пытаетесь это изменить.

2. мне просто интересно, почему во время выполнения Main должен быть статичным. Очевидно, что если это не так, то во время выполнения придется создать экземпляр объекта содержащего класса, а затем вызвать containingObject.Main(..) . Поскольку containingClass определяется пользователем, а время выполнения не хочет иметь дело с другим случаем в любой другой программе, поэтому оно предварительно определяет требование к Main быть статичным, чтобы его можно было просто вызвать без каких-либо зависимостей.

3. @Munish: Я думаю, вы сами ответили на свой вопрос, в значительной степени. Методу Main проще управлять созданием объекта, если он определенно этого хочет, и если ему это не нужно, было бы бессмысленно его создавать.

Ответ №2:

Если вы измените ‘static’ на ‘static void main’ в программе, приложение не сможет отлаживаться, и если ввести string[] аргументы или нет, ничего не произойдет.