Как можно проварьировать стандартные части программы Hello World на C#?

Всем привет.

Пытаюсь начинать с разбора Hello World, пока не станет супер ясно не только что там написано, но что *ещё* в принципе там может быть написано. Вместо того чтобы запоминать как мантру. (И желательно даже понять - почему они сделали так, а не иначе, но это уже роскошь.)

Есть разборы, которые дословно поясняют, например - вот https://www.geeksforgeeks.org/hello-world-in-c-sharp/
И там даются намёки, что, например, void - не обязательно должен быть void, но - вместо примеров там отсылают в большие и подробные разделы про отдельные вещи. А хотелось бы простых примеров программ, по сложности почти не отличающихся от хеллоуворлда, но в тоже время с максимально проварьированными методами.

Есть такое где-нибудь? Можно ли попросить практикующих C# написать мне максимально нестандартный пример Hello World'а?

На скриншоте прилагаю, хотелось бы узнать что из этого можно менять, что можно опустить, куда можно положить несколько вместо одного имеющегося сейчас. Что из этого - часть языка (Main) а что - придуманное юзером из головы и может быть любым.
62bb093cc7263712385406.jpeg

И заранее прошу прощение за путаный вопрос. Просто сейчас после паскалей и питонов - C# хеллоуворд видится как какой-то буддистский коан.

Спасибо.
  • Вопрос задан
  • 212 просмотров
Решения вопроса 3
vabka
@vabka Куратор тега C#
Токсичный шарпист
хеллоуворд видится как какой-то буддистский коан.

Минимальный современных хеллоу ворлд выглядит так:
Console.WriteLine("Hello world!");

Чтобы разобраться во всех следующих пунктах тебе следует продолжать изучать (хоть по курсу, хоть по книге), иначе всё расписывание само по себе потянет на небольшую книгу, или хотябы брошюру, и при этом врядли как-то тебе поможет:

1. Можно просто убрать этот конкретный using, используя global usings или используя полные имена типов
2. Можно не писать namespace или написать любой свой собственный. Или можно использовать file scoped namespace
3. Можно придумать своё имя класса, можно сделать его статичным, можно сделать явно приватным или публичным.
4, 5, 6. Main (точка входа) обязан быть статичным. Другие методы могут быть не статичными.
Main можно сделать публичным или приватным, можно дать другое имя, но тогда придётся в опциях компилятора указать, какое имя.
Main можно сделать асинхронным - тогда вместо void или int (Да, он может возвращать int) будет Task или Task<int>
7,8,9. string[] args можно не указывать, или дать этому параметру другое имя (не args), но принимать что-то иное нельзя
10,11. Это уже относится к телу метода и оно может быть любым. Но вместо Console.WriteLine можно написать полное имя - System.Console.WriteLine или сделать using static System.Console и тогда можно будет написать просто WriteLine
Ответ написан
GavriKos
@GavriKos
Лучше почитайте книгу какую по сишарпу. Первые 3 пункта там точно объяснены прям конкретно. Да и остальные практически тоже. А еще заодно изучите что такое "ключевые слова", например
Варьировать вам никто тут ничего не будет, потому что можно доварьироваться до своего транслятора.
Ответ написан
Комментировать
@rotabor
62ee8dfce48f1873148339.png Очень хорошая книга, рекомендую. Чёткое, последовательное и грамотное изложение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AndyKyiv
@AndyKyiv
Dev+Music
В дополнение к комментарию выше:
>>1. Можно просто убрать этот конкретный using, используя global usings или используя полные имена типов
Это избавит от одного и того же using в формах/классах.
global using - это в рамках всего решения.

От себя: если у вас там не только Привет-Мир будет, а что-то, что может вызвать ошибки, тогда не void, а int - вы сможете возвращать код ошибки. То есть 0, если все прошло без ошибок.

У себя в проектах использую передачу переменных по ссылке, так что иногда у меня в таких аргументах и код ошибки, и описание, а сама функция, например, возвращает System.Data.DataView, и тогда если переданная по ссылке переменная iError больше нуля - тогда я даже не обращаюсь к результату выполнения: он, скорее всего, null. Вообще, в функции я передаю много чего по ссылке, их может быть сколько угодно. Если я в функции форматирую что-то в HTML, я могу по ссылке вернуть в переменную и обычный текст.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы