Stanislav Gerasimov 23 ноября 2021

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ познакомимся с C# ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ .NET, рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ языка ΠΈ Π΅Π³ΠΎ ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ напишСм нСсколько нСслоТных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ основы синтаксиса Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.
πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚
Π―Π·Ρ‹ΠΊ программирования C# ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° .NET Framework ΠΏΡ€ΠΎΡˆΠ»ΠΈ Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΏΡƒΡ‚ΡŒ развития с 2002 Π³ΠΎΠ΄Π° ΠΈ сСгодня ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых пСрспСктивных инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π‘ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ .NET Core 1/2/3 ΠΈ .NET 5 Π½Π°Ρ‡Π°Π»Π°ΡΡŒ новая эра Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм Π½Π° языкС C#. Основной ΡƒΠΏΠΎΡ€ Π±Ρ‹Π» сдСлан Π½Π° ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ.

Установка .NET ΠΈ инструмСнтов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° C#

Установка Π² ОБ Windows

Для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ окруТСния Π² Windows, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ – Microsoft Visual Studio Community 2019. ЗапускаСм Ρ„Π°ΠΉΠ» vs_community.exe ΠΈ Π² ΠΎΠΊΠ½Π΅ мастСра установки Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹(Π²ΠΊΠ»ΡŽΡ‡Π°Ρ .NET 5):

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ установки Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Visual Studio ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΊ написанию ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΡˆΠ°Ρ€ΠΏΠΈΡΡ‚Π°Β».

Установка Π² Linux (Ubuntu)

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ .NET ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² популярных дистрибутивах Linux: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ubuntu 20.04 LTS поддСрТиваСтся SDK .NET 5.0/.NET Core 3.1 ΠΈ срСда выполнСния ASP.NET Core. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎ инструкции с сайта Microsoft. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ для добавлСния рСпозитория Π²Π²Π΅Π΄Ρ‘ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

        wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

    

Установим .NET SDK 5, ввСдя Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

        sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-5.0

    

Π‘Ρ€Π΅Π΄Π° выполнСния ASP.NET Core устанавливаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

        sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-5.0

    

Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ этапом являСтся установка Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° Microsoft Visual Studio Code: для этого Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° сайт ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .deb.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

ЗапускаСм ΠΈ устанавливаСм, послС Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° C#. Для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… дистрибутивов Linux всС шаги сходны с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ систСмы управлСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ.

Установка Π² macOS

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° .NET ΠΈ язык C# стали доступны ΠΈ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы macOS. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Windows Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° интСгрированная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ – Microsoft Visual Studio for Mac. Π‘ΠΊΠ°Ρ‡Π°Π΅ΠΌ Visual Studio for Mac 2019.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

ΠœΠΎΠ½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π· VisualStudioforMacInstaller.dmg ΠΈ запускаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ установки Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ:

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (.NET Core):

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

НаТимаСм ΠΊΠ½ΠΎΠΏΠΊΡƒ Install ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ установщика. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с инструкциСй ΠΌΠΎΠΆΠ½ΠΎ Π½Π° сайтС Microsoft.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ запуск ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ОБ Windows

Π’ Windows запускаСм Microsoft Visual Studio 2019 ΠΈΠ· мСню ΠŸΡƒΡΠΊ ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ β€œΠ‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ проСкта”.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠΊΠ½Π΅ Π² качСствС Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Console App (КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) Π½Π° языкС C#.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ шагС ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ имя ΠΈ располоТСниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ .NET ΠΈ создадим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‰Ρ‘Π»ΠΊΠ½ΡƒΠ² ΠΊΠ½ΠΎΠΏΠΊΡƒ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, откроСтся основноС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΠ½ΠΎ Visual Studio 2019. Оно состоит ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… ΠΏΠ°Π½Π΅Π»Π΅ΠΉ: Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π°, ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ) ΠΈ свойства.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° состоит ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Program.cs ΠΈ зависимостСй, Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ Π΅Π³ΠΎ содСрТимоС.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° простая, Π½ΠΎ выполняСт Π²Ρ‹Π²ΠΎΠ΄ строки. Для Π΅Ρ‘ компиляции ΠΈ запуска Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ F5 ΠΈΠ»ΠΈ Π½Π° Π·Π΅Π»Π΅Π½ΡƒΡŽ стрСлку.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

ΠŸΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² консольном ΠΎΠΊΠ½Π΅ выводится Hello World!.

Linux/Ubuntu

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ консольного прилоТСния .NET – FirstApp Π² Visual Studio Code, для этого Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Π€Π°ΠΉΠ» -> ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ, Π΄Π°Π»Π΅Π΅ Π² появившСмся ΠΎΠΊΠ½Π΅ создадим ΠΏΠ°ΠΏΠΊΡƒ FirsrApp ΠΈ Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΏΠΊΡƒ.

ΠžΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Π² Visual Studio Code, Π²Ρ‹Π±Ρ€Π°Π² Π’ΠΈΠ΄ -> Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π». Π’ ΠΎΠΊΠ½Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Π²Π²Π΅Π΄Ρ‘ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

        dotnet new console --framework net5.0
    

Она создаСт простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FirstApp ΠΈ класс Program с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Console.WriteLine(String) для Π²Ρ‹Π²ΠΎΠ΄Π° "Hello World!" Π² ΠΎΠΊΠ½Π΅ консоли.

Для запуска прилоТСния Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Π²Π²ΠΎΠ΄ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

        dotnet run
    

Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ послС Π΅Ρ‘ выполнСния Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° строка Hello World!.

Apple macOS

Запустим Visual Studio for Mac 2019 ΠΈ Ρ‰Π΅Π»ΠΊΠ½Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ New (Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ).

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Web and Console (Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ Консоль) Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹Π±Π΅Ρ€Π΅ΠΌ Ρ‚ΠΈΠΏ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ шаблон КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π”Π°Π»Π΅Π΅.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

Π’Π²ΠΎΠ΄ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Ρ‰Π΅Π»ΠΊΠ°Π΅ΠΌ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Create (Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ).

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

КонсольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ создано: ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½Π΅Π΅ ΠΎΠ½ΠΎ содСрТит класс Program с Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° Main ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Console.WriteLine(β€œHello World!”);.

πŸ‘¨β€πŸŽ“οΈ Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎ C# для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…. Π§Π°ΡΡ‚ΡŒ 1: установитС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ освойтС основы языка Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚

Запустим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΆΠ°Π² Π½Π° Ρ‡Ρ‘Ρ€Π½ΡƒΡŽ стрСлку ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ клавиш Option+Command+Enter.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅, ΠΌΡ‹ создали ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ строку Hello World! ΠΈ запустили Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах. Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ структуру ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ„Π°ΠΉΠ»Π΅ Program.cs.

        using System; 

namespace FirstApp
{
    /*Моя пСрвая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.*/
    class Program
    {
        static void Main(string[] args) // ΠœΠ΅Ρ‚ΠΎΠ΄ Main - Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
        {
            Console.WriteLine("Hello World!"); // WriteLine - Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ строку
        }
    }
}

    

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ построчно исходный ΠΊΠΎΠ΄:

  • using System – ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ пространство ΠΈΠΌΠ΅Π½ System с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ классов.
  • namespace FirstApp являСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ для классов Π² Ρ€Π°ΠΌΠΊΠ°Ρ… прилоТСния, объСдиняя ΠΈΡ… Π² ΠΎΠ΄Π½ΠΎ пространство ΠΈΠΌΡ‘Π½.
  • Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки {} ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°.
  • class Program – класс с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ привносит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. КаТдая строка исполняСмого ΠΊΠΎΠ΄Π° Π½Π° C# Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса. Π’ нашСм случаС класс ΠΈΠΌΠ΅Π΅Ρ‚ имя Program.
  • Код Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Main Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ являСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
  • Console – класс пространства ΠΈΠΌΠ΅Π½ System, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ WriteLine(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста. Π£ нас Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° строка Β«Hello World!Β».
  • Если ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ строку using System, Ρ‚ΠΎ придСтся ΠΏΠΈΡΠ°Ρ‚ΡŒ System.Console.WriteLine() для Π²Ρ‹Π²ΠΎΠ΄Π° тСкста.
ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ C # заканчиваСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой ; , ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ язык чувствитСлСн ΠΊ рСгистру: Β«MyClassΒ» ΠΈ Β«myclassΒ» ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.
  • Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΈΠΌ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ ΠΊΠΎΠ΄Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ: ΠΎΠ½ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ многострочными ΠΈ однострочными, Π° Π·Π°Π΄Π°ΡŽΡ‚ΡΡ символами /**/ ΠΈ // соотвСтствСнно.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ слуТат для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π½ΠΈΠΌΠΈ. ΠžΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ классичСский синтаксис: Ρ‚ΠΈΠΏ имя = Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;

        int number = 10;
    

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ интСрфСрСнция Ρ‚ΠΈΠΏΠΎΠ²: компилятор C# способСн автоматичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово var.

        var number = 9;
    

Для объявлСния констант добавляСтся ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово const ΠΈ ΠΈΡ… значСния ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ фиксированными Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

        const int sizeArr = 10;
    

C# ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹: int, double, string, char, bool, float, long. ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… для простоты понимания Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π° языка.

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ ΠΈ Π²Ρ‹Π²ΠΎΠ΄

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Console.WriteLine ΠΌΠΎΠΆΠ½ΠΎ вывСсти ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° экран.

        string manufactuer = "Tesla";
string model = "Model S";
int price = 6390000;

Console.WriteLine("Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ нашС Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅!");
Console.WriteLine(manufactuer + " - " + model);
Console.WriteLine("Π¦Π΅Π½Π°: " + price);
    

ПослС Π²Ρ‹Π²ΠΎΠ΄Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки пСрСмСщаСмся Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку, Π° для Π²Ρ‹Π²ΠΎΠ΄Π° Π² ΠΎΠ΄Π½Ρƒ строку ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Console.Write().

Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ вывСсти значСния с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ строки для Π±ΠΎΠ»Π΅Π΅ наглядного Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

        Console.Write($"ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ: {manufactuer}  МодСль: {model}  Π¦Π΅Π½Π°: {price} Ρ€ΡƒΠ±");
    

Π’ консоль Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° ΡƒΠΆΠ΅ форматированная строка.

Для Π²Π²ΠΎΠ΄Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π² C# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Console.ReadLine().

        Console.Write("Как вас Π·ΠΎΠ²ΡƒΡ‚? ");
string nane = Console.ReadLine();
Console.WriteLine("Π’Π°ΡˆΠ΅ имя: " + nane);
    

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ считываСт строку Π² консоли ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅Ρ‘ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Для Π²Π²ΠΎΠ΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ строку ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Convert.ToType(), Π³Π΄Π΅ Type Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π½Π°ΠΌ Ρ‚ΠΈΠΏ.

        Console.Write("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ модСль Π°Π²Ρ‚ΠΎ: ");
string model = Console.ReadLine();

Console.Write("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ вСс: ");
double massa = Convert.ToDouble(Console.ReadLine());

Console.Write("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ».Π΄Π²Π΅Ρ€Π΅ΠΉ: ");
int doorCount = Convert.ToInt32(Console.ReadLine());

Console.Write("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ†Π΅Π½Ρƒ: ");
decimal price = Convert.ToDecimal(Console.ReadLine());
Console.WriteLine($"МодСль:{model}  ВСс:{massa}Ρ‚  Π”Π²Π΅Ρ€Π΅ΠΉ:{doorCount} Π¦Π΅Π½Π°: {price}Π ");

    

Для привСдСния строк вСс, количСство Π΄Π²Π΅Ρ€Π΅ΠΉ ΠΈ Ρ†Π΅Π½Π° Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π½Π°ΠΌ Ρ‚ΠΈΠΏ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Convert.ToDouble(), Convert.ToInt32() ΠΈ Convert.ToDecimal() соотвСтствСнно. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ².

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΡ… значСниями ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ – арифмСтичСскиС, присваивания, сравнСния ΠΈ логичСскиС.

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ +, -, *, /, %, ++, -- ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² основном для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с числовыми ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

        int a = 8, b = 4;

Console.WriteLine($"a + b = {a + b}");
Console.WriteLine($"a - b = {a - b}");
Console.WriteLine($"a * b = {a * b}");
Console.WriteLine($"a / b = {a / b}");
Console.WriteLine($"a % b = {a % b}");

    

По ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

        int a = 8;

a += 2;
a -= 2;
a *= 2;
a /= 2;
a %= 2;

    

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для сравнСния Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° bool (логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅).

        bool condition1 = a == b;
bool condition2 = a != b;
bool condition3 = a > b;
bool condition4 = a < b;
bool condition5 = a >= b;
bool condition6 = a <= b;

    

ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹

Π—Π΄Π΅ΡΡŒ всС стандартно ΠΈ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎ, Ссли Π²Ρ‹ ΠΈΠΌΠ΅Π»ΠΈ Π΄Π΅Π»ΠΎ с C-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ языками.

        int a = 4;
Console.WriteLine(a > 2 && a < 5);
Console.WriteLine(a > 1 || a < 3);
Console.WriteLine(!(a > 2 && a < 5));

    

Π’ языкС C# ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, рассмотрим ΠΈΡ… ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ часто Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условиях (conditions).
  • Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ инструкции: if, else, ternary operation, switch.
  • Для ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ выполнСния инструкций ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ†ΠΈΠΊΠ»Ρ‹: for, foreach, while, break-continue.

If…else

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ if…else Π² стандартной Ρ„ΠΎΡ€ΠΌΠ΅ выглядит Ρ‚Π°ΠΊ:

        if (condition)
{
    // 
}
else
{
    //
}

    

По ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ ΠΏΠΎΡ‚ΠΎΠΊ пСрСдаСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΈ истинности условия (true), выполняСтся ΠΊΠΎΠ΄ Π² if {…}, Π° ΠΊΠΎΠ³Π΄Π° условиС Π»ΠΎΠΆΠ½ΠΎ (false), выполняСтся ΠΊΠΎΠ΄ Π² else {…}.

        string name = Console.ReadLine();

if(name != "")
{
    Console.WriteLine(name);
}
else
{
    name = "Антон";
    Console.WriteLine(name);
}

    

if…

Если трСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ условиС, Ρ‚ΠΎ else ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ.

        int x = 0;

if(x == 0)
{
    x = 5;
}

    

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, пСрСмСнная ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли ΠΎΠ½Π° Ρ€Π°Π²Π½Π° Π½ΡƒΠ»ΡŽ.

if...else if...else

МоТно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ if послС else ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…:

        string modelPhone = Console.ReadLine();
string manufactPhone = "";

if (modelPhone == "IPhone X")
{
    manufactPhone = "Apple";
    Console.WriteLine(manufactPhone + " " + modelPhone);
}
else if (modelPhone == "Honor 10")
{
    manufactPhone = "Huawei";
    Console.WriteLine(manufactPhone + " " + modelPhone);
}
else
{
    Console.WriteLine("No phone!");
}

    

ВСрнарная опСрация (Ternary operation)

БущСствуСт Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ if...else, извСстный ΠΊΠ°ΠΊ Ρ‚Π΅Ρ€Π½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². Π•Π³ΠΎ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ для Π·Π°ΠΌΠ΅Π½Ρ‹ простых ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² if...else.

        int a = 10;
int b = 7;

int c = a < b ? (a - b) : (a + b);
Console.WriteLine(c);

    

switch

Для Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· мноТСства Π±Π»ΠΎΠΊΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch.

        int x = Convert.ToInt32(Console.ReadLine());

switch (x)
{
      case 1:
           Console.WriteLine("One");
           break;
     case 2:
          Console.WriteLine("Two");
          break;
    default:
          Console.WriteLine("Other number!");
          break;
    }
}

    

Π¨Π°Π±Π»ΠΎΠ½, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ сравниваСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x опрСдСляСтся ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом case. Π”Π°Π»Π΅Π΅ ΠΏΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌΡƒ совпадСнию с шаблоном, выполняСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°. Если совпадСний Π½Π΅Ρ‚, Ρ‚ΠΎ исполняСтся Π±Π»ΠΎΠΊ default для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаСв.

Π¦ΠΈΠΊΠ» for

Π¦ΠΈΠΊΠ» for Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ с ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

        for(start; condition; step) 
{
       // Π±Π»ΠΎΠΊ выполняСмого ΠΊΠΎΠ΄Π°
}

    

Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ†ΠΈΠΊΠ»Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ вычислСния Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ умноТСния.

        for(int i = 1; i < 10; i++)
{
    Console.WriteLine($"{i} * {i} = {i * i}");
}

    

Π¦ΠΈΠΊΠ» Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ со значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ i = 1 Π΄ΠΎ 9, увСличивая Π΅Ρ‘ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ i++ (ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚), каТдая итСрация вычисляСт ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ числа само Π½Π° сСбя, Π² ΠΈΡ‚ΠΎΠ³Π΅ выводится Ρ‚Π°Π±Π»ΠΈΡ†Π° умноТСния.

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ условиями Ρ†ΠΈΠΊΠ»Π°.

Π¦ΠΈΠΊΠ» foreach

Π’Π°ΠΊΠΆΠ΅ сущСствуСт Ρ†ΠΈΠΊΠ» foreach, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для цикличСского ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° элСмСнтов массива (смотрим Ρ€Π°Π·Π΄Π΅Π» ΠœΠ°ΡΡΠΈΠ²Ρ‹):

        foreach (type variable in array) 
{
  // Π±Π»ΠΎΠΊ выполняСмого ΠΊΠΎΠ΄Π°
}

    

Рассмотрим Ρ‚Π°ΠΊΠΎΠΉ случай, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ символы строки.

        string str_hello = "Hello World!";

foreach(char ch in str_hello)
{
    Console.WriteLine(ch);
}

    

Π‘Ρ‚Ρ€ΠΎΠΊΠ° прСдставляСт собой массив символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ char ch, Ρ†ΠΈΠΊΠ» ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС символы строки.

Π¦ΠΈΠΊΠ» while

Π¦ΠΈΠΊΠ» while выполняСт ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ условиС истинно ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ синтаксис:

        while (condition) 
{
  // Π±Π»ΠΎΠΊ выполняСмого ΠΊΠΎΠ΄Π°
}

    

Π’Π°Π±Π»ΠΈΡ†Π° умноТСния Π² этом Ρ†ΠΈΠΊΠ»Π΅, рСализуСтся Ρ‚Π°ΠΊΠΆΠ΅ просто.

        int n = 1;

while(n < 10)
{
    Console.WriteLine($"{n}*{n} = {n*n}");
    n++;
}

    

Π¦ΠΈΠΊΠ» do / while Π΅Ρ‰Ρ‘ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ†ΠΈΠΊΠ»Π° while, ΠΎΠ½ выполняСт Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΈΡΡ‚ΠΈΠ½Π½ΠΎΡΡ‚ΡŒ условия, Π° Π·Π°Ρ‚Π΅ΠΌ повторяСт ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠΊΠ° условиС истинно. Бинтаксис Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° выглядит Ρ‚Π°ΠΊ:

        do 
{
  // Π±Π»ΠΎΠΊ выполняСмого ΠΊΠΎΠ΄Π°
}
while (condition);

    

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим вычислСниС суммы чисСл ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ нуля, Ссли вводится 0, Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈ выводится сумма.

        int n; 
int sum = 0; 

do
{ 
     Console.Write("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число: ");
     n = Convert.ToInt32(Console.ReadLine());

     sum += n;
} while (n != 0);

    Console.WriteLine("Π‘ΡƒΠΌΠΌΠ° = {0}", sum);
    

break/continue

Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ остановкой/ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ†ΠΈΠΊΠ»Π°, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break ΠΈ continue.

        for (int i = 0; i < 20; i++) 
{
       if(i==10)
       {
           continue;
       }
       if(i==17)
       {
           break;
       }
}
    

Из ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли i=10, Ρ‚ΠΎ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Ссли i=17, Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ break Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ Ρ†ΠΈΠΊΠ».

ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ являСтся Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΉ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ памяти, Π½ΠΎ ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ, Ссли трСбуСтся нСсколько Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°? Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

ΠžΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив состоит ΠΈΠ· ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… N-элСмСнтов ΠΈ синтаксис Π΅Π³ΠΎ объявлСния ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

        type [] nameArr;
    

Для использования массива, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€, Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚Π°ΠΊ:

        type [] nameArr = new type [N];
    

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ массива ΠΈΠ· N-элСмСнтов, Ρ‚Π°ΠΊΠΆΠ΅ C# ΡƒΠΌΠ΅Π΅Ρ‚ автоматичСски ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива, Ссли ΠΎΠ½ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½. НапримСр, Ссли Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив, хранящий ΠΌΠΎΠ΄Π΅Π»ΠΈ IPhone, ΠΏΡ€ΠΈ объявлСнии ΠΌΡ‹ сразу ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΅Π³ΠΎ.

        string[] phones = {"IPhone 6S", "IPhone 8", "IPhone X", "IPhone 12 Pro"};

    

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ массив с числами, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΠΎΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Для обращСния ΠΊ элСмСнтам массива ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ индСксы. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ C# являСтся Π½ΡƒΠ»ΡŒ-Π±Π°Π·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языком, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΎΠ½ΠΈ с нуля. Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту массива ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Ρƒ всСх Π΅Π³ΠΎ элСмСнтов Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ индСксам.

        string[] phones = {"IPhone 6S", "IPhone 8", "IPhone X", "IPhone 12 Pro"};

Console.WriteLine(phones[0]);
Console.WriteLine(phones[3]);

for(int i = 0; i < phones.Length; i++)
{
    Console.WriteLine($"[{i}] = {phones[i]}");
}

    

По индСксам 0 ΠΈ 3, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ послСдний элСмСнты массива, Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΈ выводятся всС Π΅Π³ΠΎ элСмСнты. Если Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ элСмСнт массива, это дСлаСтся Ρ‚Π°ΠΊΠΆΠ΅ с использованиСм индСкса.

НапримСр, Ссли вмСсто IPhone X Π½ΡƒΠΆΠ½ΠΎ внСсти IPhone 11, Ρ‚ΠΎ ΠΏΠΎ индСксу 2 просто измСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

        string[] phones = {"IPhone 6S", "IPhone 8", "IPhone X", "IPhone 12 Pro"};

for (int i = 0; i < phones.Length; i++)
 {
      if (i == 2)
      {
          phones[i] = "IPhone 11";
      }
      Console.WriteLine($"[{i}] = {phones[i]}");
}

    

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ массив.

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π°Ρ‰Π΅ всСго ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ соотвСтствуСт ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивам.

Π”Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΈ N-ΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Бинтаксис объявлСния Ρ‚Π°ΠΊΠΈΡ… массивов ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

        type[,] arrName;

    

Запятая Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ массива, Π° Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ задаСтся Ρ‚Π°ΠΊ:

type[,] arrName = new type[N, M];

НапримСр, Ρƒ нас ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π΅ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅.

        int[,] MatrixA = new int[3,3] { {1, 2, 3}, {4, 5, 6}, {7,  8, 9} };
int[,] MatrixB = new int[3, 3] { { 3, 2, 1 }, { 6, 5, 4 }, { 9, 8, 7 } };
int[,] resultMatrix = new int[3, 3];

for(int i = 0; i < 3; i++)
{
    for(int j = 0; j < 3; j++)
    {
        resultMatrix[i, j] = MatrixA[i, j] * MatrixB[i, j];
        Console.Write(resultMatrix[i, j] + " ");
    }
        Console.WriteLine("");
}

    

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΌΡ‹ создали Π΄Π²Π° массива Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 3Ρ…3 с числами Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ массив – resultMatrix. Для ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° ΠΏΠΎ столбцам ΠΈ строкам массивов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π° Ρ†ΠΈΠΊΠ»Π° for.

На этом с массивами Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π½ΠΈΡ… ΠΈ структурах Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… частях.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ (Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ)

Π‘ ростом слоТности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ хранят Π½Π°Π±ΠΎΡ€Ρ‹ инструкций ΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ.

Π’ нашСй ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ имССтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Main() – Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ WriteLine() ΠΈ ReadLine() ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΌΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄ – это Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ запускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΈ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия. ОбъявлСниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

static type MethodName() {

........

}

Π“Π΄Π΅ MethodName () – это имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π° static ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ классу Program, Π° Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ класса Program.

Об ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части Ρ†ΠΈΠΊΠ»Π°.

void ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния.

void-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΈ использования Π½Π΅Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

        static void Main(string[] args) // ΠœΠ΅Ρ‚ΠΎΠ΄ Main - Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
{
	string name = β€œMichael”;

        Hello();
        AreaQvadrata(a);
}

static void Hello()
{
      Console.WriteLine("Hello Method!");
}

static void HelloName(string input)
{
      Console.WriteLine("Hello, " + input);
}

    

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Hello() ΠΈ HelloName(string input) Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² основном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Main(), ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ строку ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΡƒΠΆΠ΅ Hello, Name.

return-ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ с Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ вычислСния суммы ΠΈ произвСдСния чисСл.

        static void Main(string[] args) // ΠœΠ΅Ρ‚ΠΎΠ΄ Main - Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
{
     int a = 4, b = 5;

     int res = Sum(a, b);
     Console.WriteLine(res);

}

 static int Sum(int a, int b)
 {
    return a + b;
 }

    

ΠœΠ΅Ρ‚ΠΎΠ΄ Sum ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² 2 числа ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… сумму.

***

На этом ΠΌΡ‹ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ основам C#. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… выпусках самоучитСля Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ слоТныС Ρ‚Π΅ΠΌΡ‹. Π£Π΄Π°Ρ‡ΠΈ Π² освоСнии ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· популярных языков программирования!

ΠœΠ•Π ΠžΠŸΠ Π˜Π―Π’Π˜Π―

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•