+ 1

Зачем вызывать метод Main и делать статическим САМОМУ? (В Решётке)

Я при выполнении тренажеров использую компилятор не из SoloLearn. В "моём" компиляторе я пишу "void Main()". И он у меня прекрасно работает! Но стоит мне перенести этот код в СолоЛеарн, то вылетает ошибка! Исправление этой ошибки является дописание к "void Main()" "static", то есть получается "static void Main()". В "моём" компиляторе, повторяю, параметр "static" необязателен, но в компиляторе SoloLearn это обязательно. По какой причине? И зачем?

24th Nov 2024, 5:44 PM
Русский Чебурек
Русский Чебурек - avatar
1 Answer
0
TRANSLATION When running simulators, I use a compiler other than SoloLearn. In "my" compiler, I write "void Main()". And it works fine for me! But as soon as I transfer this code to SoloLearn, an error pops up! The fix for this error is to append "static" to "void Main()", that is, "static void Main()". In "my" compiler, I repeat, the "static" parameter is optional, but in the SoloLearn compiler it is mandatory. For what reason? And why? ANSWER static is actually the correct way to do it. Main() is a static function. Apparently in recent versions of C# you can omit it and the compiler will secretly assume static for Main(). The function is static and it's common practice to put static there. SoloLearn's C# compiler doesn't support this new convention, but that should not be a problem. Just put the keyword. I use JetBrains Rider and it still requires static just as SoloLearn does. static на самом деле правильный способ сделать это. Main() — это статическая функция. Видимо, в последних версиях C# вы можете опустить ее, и компилятор тайно предположит static для Main(). Функция является статической, и это обычная практика — помещать туда static. Компилятор C# SoloLearn не поддерживает это новое соглашение, но это не должно быть проблемой. Просто поместите ключевое слово. Я использую JetBrains Rider, и он по-прежнему требует static, как и SoloLearn.
24th Nov 2024, 9:02 PM
Jerry Hobby
Jerry Hobby - avatar