Бинтаксис языка C sharp

C Sharp ΠΈΠ»ΠΈ C# — язык программирования для создания ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы сСмСйства Microsoft. Π―Π·Ρ‹ΠΊ Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ Π² 2001-ΠΌ Π³ΠΎΠ΄Ρƒ нСсколькими Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Π²ΠΎ Π³Π»Π°Π²Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… находился АндСрс Π₯СйлсбСрг ΠΈ Π‘ΠΊΠΎΡ‚Ρ‚ Π’ΠΈΠ»ΡŒΡ‚Π°ΡƒΠΌΠΎΡ‚. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π½Π° C#, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Microsoft .NET Framework. На сСгодняшний дСнь для Π‘# создано ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ классов.

Π―Π·Ρ‹ΠΊ являСтся ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ C языка ΠΈ являСтся самым ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌ Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠ΅ΠΌ сСмСйства Π‘-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков. Он Π²ΠΎΠ±Ρ€Π°Π» Π² сСбя всС самоС Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΈΠ· C ΠΈ C++, синтаксис ΠΎΡ‡Π΅Π½ΡŒ схоТ с Java, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности.

Π‘Π°ΠΌ ΠΏΠΎ сСбС Π‘# являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ языком программирования. Он ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π² сСбС ΡΡ‚Ρ€ΠΎΠ³ΡƒΡŽ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ. Π―Π·Ρ‹ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ ООП:

  • наслСдованиС,
  • ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ,
  • ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ,
  • Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ.

Он ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ структур Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π³ΠΈΠ±ΠΊΡƒΡŽ систСму хранСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ плюсом языка являСтся автоматизированная очистка памяти — ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ запускаСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ удалСния самих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΊΡƒΡ‡Π΅, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти. Но Π² этой ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅ ΠΎΠ± этом. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ самыС Π°Π·Ρ‹. А ΠΈΠΌΠ΅Π½Π½ΠΎ — синтаксис языка C#.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ синтаксис языка?

Бинтаксис языка программирования — это стСк ΠΏΡ€Π°Π²ΠΈΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Π΅Π΄ΠΈΠ½ΡƒΡŽ систСму для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. НаписаниС ΠΊΠΎΠ΄Π° осущСствляСтся ΠΏΠΎ строгому ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΡŽ ΠΏΡ€Π°Π²ΠΈΠ» написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ языкС. Π’ΠΎ Π΅ΡΡ‚ΡŒ — Π΅ΡΡ‚ΡŒ опрСдСлСнная систСма написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ процСссору Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ†ΠΈΠΈ ошибки.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ — русскиС Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ русский язык, ΠΊΠΈΡ‚Π°Π΅Ρ† — китайский, Π°Π½Π³Π»ΠΈΡ‡Π°Π½ΠΈΠ½ — английский. Если Π°Π½Π³Π»ΠΈΡ‡Π°Π½ΠΈΠ½Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π»ΠΈΠ±ΠΎ Π½Π° китайском ΠΈΠ»ΠΈ просто Π½Π°Π±ΠΎΡ€ Π±ΡƒΠΊΠ², Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ смоТСт ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΡƒΡŽ Π² Π΅Π³ΠΎ ΠΌΠΎΠ·Π³.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² соотвСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ структуры ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написания ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½, с использованиСм ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ языка C# ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ написанныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ ΠΈΠ½ΠΎΠΌ случаС ΠΎΠ½ выдаст ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с синтаксисом C#, Π²ΠΎΠ±Ρ€Π°Π²ΡˆΠ΅Π³ΠΎ Π² сСбя всС особСнности синтаксиса C, ΠΊΠ°ΠΊ ΠΈ всС C-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ языки. ΠœΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… конструкций языка. А лишь Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈΡ… описания.

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ всС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ссылки Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти. Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², классов, массивов ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… структур. ИмСна ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ:

  • Имя ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с символа подчСркивания «_».
  • Имя ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π·Π°Π³Π»Π°Π²Π½ΠΎΠΉ ΠΈ строчной Π±ΡƒΠΊΠ²Ρ‹ — Π‘# являСтся рСгистрозависимым языком. Если ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ Π² строкС Π±ΡƒΠ΄Π΅Ρ‚ хотя Π±Ρ‹ ΠΎΠ΄Π½Π° Π±ΡƒΠΊΠ²Π°, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰Π°ΡΡΡ ΠΏΠΎ рСгистру, Ρ‚ΠΎ это ΡƒΠΆΠ΅ Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΈΠΌΠ΅Π½Π° car ΠΈ car — Π΄Π²Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅; car ΠΈ Car — ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

НСдопустимо объявлСниС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

  1. Имя Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Ρ†ΠΈΡ„Ρ€Ρ‹.
  2. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово языка Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² качСствС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° — ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ символ @.
  3. Имя Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Π΅Π΅, Ρ‡Π΅ΠΌ 511 символов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²: price, size, _size_of_box, sizeOfBox, SIZEOFBox, _price, price12, _@void(символ @ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€), ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (Π‘# ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ юникод).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ синтаксичСски Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²: 12price, int(ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово), void(ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово), 12444_hellO.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

// ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅
int digit;
float _Digit;
double diGIt;
string ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅_имя;
string @string; // ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово с символом @

//ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹
int 89digit;
int Integer; // ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово
int Object; // ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова языка C#

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ языка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ объявлСнии ссылок Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, массивы ΠΈ Ρ‚. ΠΏ.). Π­Ρ‚ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ слова, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ особый синтаксичСский смысл Π² языкС. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ»Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π΄Π΅Π»Π΅Π³Π°Ρ‚Ρ‹, события — ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ конструкции языка.

БущСствуСт Π΄Π²Π° Π²ΠΈΠ΄Π° Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов Π² C# — ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΈ контСкстныС. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов, Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΈΠΏ ΠΈΠΌΠ΅Π΅Ρ‚ ограничСния ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ контСкстС. Π•Ρ‰Π΅ Ρ€Π°Π· стоит ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚ΠΎ Ссли ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ поставлСн символ @.

Π’ Π‘# ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ прСдусмотрСны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова:

  • abstract,
  • as,
  • base,
  • bool,
  • break,
  • byte,
  • case,
  • catch,
  • char,
  • checked,
  • class,
  • const,
  • continue,
  • decimal,
  • default,
  • delegate,
  • do,
  • double,
  • else,
  • enum,
  • event,
  • explicit,
  • extern,
  • false,
  • finally,
  • fixed,
  • float,
  • for,
  • foreach,
  • goto,
  • if,
  • implicit,
  • protected,
  • public,
  • readonly,
  • ref,
  • return,
  • sbyte,
  • sealed,
  • short,
  • sizeof,
  • stackalloc,
  • static,
  • string,
  • struct,
  • switch,
  • this,
  • throw,
  • true,
  • try,
  • typeof,
  • uint,
  • ulong,
  • unchecked,
  • unsafe,
  • ushort,
  • using,
  • virtual,
  • void,
  • volatile,
  • while,
  • params,
  • private.

Π’ список контСкстных Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… слов Π²Ρ…ΠΎΠ΄ΠΈΡ‚:

  • remove,
  • select,
  • set,
  • value,
  • global,
  • group,
  • into,
  • join,
  • add,
  • dynamic,
  • from,
  • get,
  • yield,
  • var.

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² языкС C#

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² языкС. Π­Ρ‚ΠΎ Ρ‚Π΅ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ языка, ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π›ΡŽΠ±Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСт собой ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ², ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π²Ρ‹Π΄Π°Ρ‡Ρƒ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выраТаСтся этими самыми Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ.

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ C# Π±Ρ‹Π²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²ΠΈΠ΄ΠΎΠ²:

  1. ДСсятичныС: 1, 2, 34, 1289, 444, 53454, 21…;
  2. ШСстнадцатиричныС: 0*E5, 0*F2, A, F, F8…;
  3. Π‘ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ: 1.54, 234.54, 4.3…;
  4. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹, ΠΎΠ±Ρ€Π°ΠΌΠ»Π΅Π½Π½Ρ‹Π΅ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ: ‘a’, ‘v’, ‘r’, ‘D’, ‘A’, ‘Π€’, «2», «0» ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы юникода;
  5. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ, ΠΎΠ±Ρ€Π°ΠΌΠ»Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΠ°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ: «My name is Daniel», «Hello everybody!», «ΡΠΊΠΎΠ»ΡŒΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ?»;
  6. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ экранирования: \u(ΠΈ символ юникода), \n, \t, \r, \f, \\, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для рСдактирования Π²Ρ‹Π²ΠΎΠ΄Π° строк Π½Π° экран.

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ прСдставляСт собой ссылку Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π³Π΄Π΅ хранятся Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ являСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов Π² соотвСтствии с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ синтаксиса C#. Π’ языкС присутствуСт ΠΊΠ°ΠΊ строгая, Ρ‚Π°ΠΊ ΠΈ динамичСская типизация. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΠ»ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ.

ОбъявлСниС Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ начинаСтся с установки Π΅Π΅ Ρ‚ΠΈΠΏΠ°: int, string, boolean ΠΈ Ρ‚.ΠΏ. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int num; // объявлСна пСрСмСнная Ρ‚ΠΈΠΏΠ° int с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ num, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΈΠΏΠ° int
float num_float;
char letter;
string word;
var some_var; // объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π· явного указания Π΅Π΅ Ρ‚ΠΈΠΏΠ°

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ — присвоСниС Π΅ΠΉ значСния (Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°) Ρ‚ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° объявлСна. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈ объявлСнии ΠΈΠ»ΠΈ динамичСски Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±Π΅Π· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int digit = 24; // присвоСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ цСлочислСнного Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π²ΠΎ врСмя Π΅Π΅ объявлСния
string name = «Fred»;
char some_symbol = «s»;

// объявлСниС, Π° Π·Π°Ρ‚Π΅ΠΌ инициализация Π² ΠΊΠΎΠ΄Π΅

int d; // простоС объявлСниС цСлочислСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
d = 349; // присвоСниС (инициализация) Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ОбъявлСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² сокращСнном Π²ΠΈΠ΄Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// Π±Π΅Π· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

char a, b, v;

// с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ

int f = 5, x = 9, y = 999;

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ Π² C#

ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚ΠΎΠΉ являСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ фиксировано. Π’ΠΎ Π΅ΡΡ‚ΡŒ — Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ константС даСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присвоСно Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π‘Π°ΠΌΠ° константа состоит ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова const, Ρ‚ΠΈΠΏΠ°, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ присвоСнного Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

//объявим константу Π±Π΅Π· ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

const double digit;

// с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ

const string company_name = «General Motors»;

company_name = «Hello»; // ошибка — Π»ΠΈΡ‚Π΅Ρ€Π°Π» константы Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния

Π’Π°ΠΊΠΆΠ΅ константой ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈ свойства ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих свойств ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ свойства, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом readonly.

Π‘Π»ΠΎΠΊΠΈ

Π‘Π»ΠΎΠΊ Π² C# это написанный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ контСкстС ΠΎΡ‚ глобального. Π‘Π»ΠΎΠΊ создаСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ {} — пСрвая скобка ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π±Π»ΠΎΠΊ, вторая Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ контСкстом являСтся Π±Π»ΠΎΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Main. Π’ Π΅Π΅ ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΈΠ»ΠΈ Π·Π° Π½ΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ контСкст. Π‘Π»ΠΎΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΡΡƒΠ±Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ контСкстом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

public static void Main(){ // Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст (Π±Π»ΠΎΠΊ)
string g = «Hello!»; // глобальная пСрСмСнная

{
string g = «Hy!»; // Π±Π»ΠΎΠΊ локального контСкста
}

Console.print(g); // ошибка — Π² глобальном контСкстС Π½Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ g ΠΈ ΠΎΠ½Π° находится Π² области видимости глобального контСкста
}

static int func(){
int x = 6; // локальная пСрСмСнная Π² локальном контСкстС
}

Основная структура всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² C#

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° C# состоят ΠΈΠ· классов. Основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ выполняСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Main. ΠšΠ»Π°ΡΡΡ‹ хранятся Π² пространствах ΠΈΠΌΠ΅Π½ (namespaces) ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов. ΠšΠ»Π°ΡΡΡ‹ содСрТат Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠšΠ»Π°ΡΡΡ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСбя ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΊ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для доступа ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… классов. Основная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· пространства ΠΈΠΌΠ΅Π½, основного класса с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Main.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ ΠΈ классы

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

namespace System{ // пространство ΠΈΠΌΠ΅Π½ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ System, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ коллСкция классов
class Web_Data{ // класс Π²Π½ΡƒΡ‚Ρ€ΠΈ пространства ΠΈΠΌΠ΅Π½

}

class System_data{ // Π΄Ρ€ΡƒΠ³ΠΎΠΉ класс
class app_data{ // класс Π²Π½ΡƒΡ‚Ρ€ΠΈ класса

}
}

}

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

Π‘ΠΊΠ΅Π»Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… основных конструкций:

  1. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½.
  2. Π“Π»Π°Π²Π½Ρ‹ΠΉ класс.
  3. ΠœΠ΅Ρ‚ΠΎΠ΄ Main ΠΊΠ°ΠΊ экзСмпляр Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ класса ΠΈ, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ Π±Π»ΠΎΠΊΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполняСтся основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

using System
using WindowsForms
using WebObjectsLibrary

namespace Some_NS{
// здСсь ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ описаны Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы, структуры, интСрфСйсы ΠΈ Ρ‚. ΠΏ.
class main_program{
//здСсь ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, события ΠΈΠ»ΠΈ Π΄Π΅Π»Π΅Π³Π°Ρ‚Ρ‹ основного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°
public static void Main(){
// здСсь ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ
}
}
}

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… классов ΠΈ пространств ΠΈΠΌΠ΅Π½

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ ΠΈ классы ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ. ΠŸΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, автоматичСски ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ пространство ΠΈΠΌΠ΅Π½ System, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅cΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство классов, структур ΠΈ интСрфСйсов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π°Π·Π΄Π΅Π»Π° «Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹» Π² самом Π½Π° Ρ‡Π°Π»Π΅ Π²ΠΈΠ΄Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ строки, ΠΊΠ°ΠΊ using System ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… пространств ΠΈΠΌΠ΅Π½ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ классов. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово uses Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ ΠΈΠ»ΠΈ класс.

ΠŸΡ€ΠΈ использовании ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ класса Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ пространству ΠΈΠΌΠ΅Π½ ΠΎΠ½ относится. Достаточно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово uses ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ класса ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹.

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс ΠΈΠ· пространства ΠΈΠΌΠ΅Π½ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: uses System.DataCollections. Π—Π΄Π΅ΡΡŒ DataCollections ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ классом, интСрфСйсом, ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ пространством ΠΈΠΌΠ΅Π½. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ классы System ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚. Π’Π°ΠΊΠΆΠ΅ для ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ доступа ΠΊ экзСмплярам пространства ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ псСвдонимы.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

using WEB = System.Net;
using Directions_Data = System.IO.DirectoryInfo;

Π’Π΅ΠΏΠ΅Ρ€ΡŒ для доступа ΠΊ статичСским ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΈ свойствам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ классу:

System.IO.DirectoryInfo.some_mehod().

Достаточно ввСсти имя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°:

Directions_Data.some_method().

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Main

ΠœΠ΅Ρ‚ΠΎΠ΄ Main ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ являСтся экзСмпляром основного класса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Он вызываСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Main ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ классы ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Main ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²: Π½Π΅ Π²ΠΎΠ·Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ 0 ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π±Π΅Π· Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° значСния
public static void Main(){ // ΠΌΠ΅Ρ‚ΠΎΠ΄ всСгда статичСский, Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово void Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚
// здСсь ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ
}

// ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ значСния

public static int Main(){ // int ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число

return 0; // Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ноля Ссли ΠΊΠΎΠ΄ выполнился Π±Π΅Π· ошибок
}

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ языка C#

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² C# ΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ — это основной инструмСнт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ². ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ матСматичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ числовыми Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ тСкстом, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ условия для выполнСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ участка ΠΊΠΎΠ΄Π°, ΠΎΡ‚Π΄Π΅Π»ΡΡ‚ΡŒ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π’ языкС C# сущСствуСт 16 ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

  1. АрифмСтичСскиС: +(ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ), -(ΠΎΡ‚Π½ΡΡ‚ΡŒ), /(Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ), *(ΡƒΠΌΠ½ΠΎΠΆΠΈΡ‚ΡŒ), %(ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ остатка ΠΎΡ‚ дСлСния). Π”Π°Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для выполнСния арифмСтичСских дСйствий Π½Π°Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами ΠΈ числами с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.
  2. ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ: +(соСдинСниС строк). ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ для слоТСния Π΄Π²ΡƒΡ… строк Π² Π΄ΠΎΠ½Ρƒ: «Hello»+»World» = «HelloWorld».
  3. ЛогичСскиС: &&(true ΠΈ true = true — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «ΠΈ»), ||(true = Ссли Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ true — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «ΠΈΠ»ΠΈ»), !(Π½Π΅ true = true — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «Π½Π΅»). ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π² условных конструкциях, Ρ‚Π°ΠΊ ΠΈ простых логичСских выраТСниях, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ всСгда true ΠΈΠ»ΠΈ false.
  4. Π­Π½ΠΊΡ€ΠΈΠΌΠ΅Π½Ρ‚, Π΄Π΅ΠΊΡ€ΠΈΠΌΠ΅Π½Ρ‚: ++(ΠΏΡ€ΠΈΠ±Π°Π²ΠΈΡ‚ΡŒ 1), —(ΠΎΡ‚Π½ΡΡ‚ΡŒ 1). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для сокращСнной записи арифмСтичСского выраТСния x = x+1(++), x = x-1(—).
  5. ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅: =(ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) += ΠΈΠ»ΠΈ -=(сокращСнная запись прибавлСния ΠΈΠ»ΠΈ отнятия с присвоСниСм), *= ΠΈΠ»ΠΈ /= (ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ с присвоСниСм), %=(присвоСниС остатка ΠΎΡ‚ дСлСния), &=, ||=, ^=, >>=, <<=(ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с присвоСниСм). ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для присвоСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ с присвоСниСм являСтся сокращСнной записью x=x+число, Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ x+=число.
  6. ΠŸΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹: &(0 ΠΈ 0 = 1 ΠΈΠ»ΠΈ 0 ΠΈ 1 = 0 — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «ΠΈ»), ||(0 ΠΈΠ»ΠΈ 0 = 0, 1 ΠΈΠ»ΠΈ 0 = 1 — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «ΠΈΠ»ΠΈ»), ^(0 = 1, 1 = 0 — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «ΠΈΠ½Π²Π΅Ρ€ΡΠΈΡ»). ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ числа ΠΈΠ»ΠΈ строки Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ систСму исчислСния ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ значСния Π±ΠΈΡ‚ΠΎΠ². КаТдоС сравнСниС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ 0 ΠΈΠ»ΠΈ 1. Π˜Ρ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ состоит возвращаСтся числом ΠΈΠ»ΠΈ строкой ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΈΠ· ряда ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΡ…ΡΡ Π±ΠΈΡ‚ΠΎΠ².
  7. Доступ ΠΊ экзСмплярам классов, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², структур: Ρ‚ΠΎΡ‡ΠΊΠ°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΊ свойствам ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ статичСским Ρ‡Π»Π΅Π½Π°ΠΌ классов.
  8. ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки []. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для индСксации массивов ΠΈ экзСмпляров ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  9. Π€ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки {}. ΠžΡ‚Π΄Π΅Π»ΡΡŽΡ‚ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° Π² функциях, Ρ†ΠΈΠΊΠ»Π°Ρ…, классах ΠΈ структурах, списках.
  10. ΠšΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки (). Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², ΠΎΡ‚Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² выполнСния арифмСтичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
  11. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сокращСнной условной конструкции: ? ΠΈ :.
  12. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ создания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°: new. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ Π² функциях конструкторах ΠΏΡ€ΠΈ создании Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
  13. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π½Π° Ρ‚ΠΈΠΏ: typeof sizeof, is, as. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ являСтся строка ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π½Π° Ρ‚ΠΈΠΏ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° (x = 5, typeof x = int).
  14. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: checked, unchecked. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ true ΠΈΠ»ΠΈ false.
  15. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с указатСлями: * -> [] &.
  16. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния: < ΠΈ >(мСньшС ΠΈ большС), <= ΠΈ >= (мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ, большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ), !=(Π½Π΅Ρ€Π°Π²Π½ΠΎ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// Рассмотрим нСсколько ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²

// АрифмСтичСскиС
int x = 5;
int y = 10;
int z;

y+x // 15
y*x // 50

// ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡ

string a = «two»;
string b = «three»;
a+b // twothree

// сравнСния
4==5 // false
88==88 // true
90>40 // true
70!=22 // true

// логичСскиС

«hello» == «hello» && «hy» == «hy» // ΠΎΠ±Π° true, Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ true
«potatoe» == «orange» || «strawberry» == «strawberry» // ΠΎΠ΄Π½ΠΎ ΠΈΠ· сравнСний true, Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ true

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ — ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Или сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ. ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ присваиваниС выполняСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: x = 5. Π—Π΄Π΅ΡΡŒ x это цСлочислСнная пСрСмСнная, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «=» присваиваСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5 ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нСскольким ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, Π² C# прСдусмотрСна короткая инициализация: int num1, num2, num3. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΡ… ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ: num1=num2=num3=250.
ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ присваивания ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ самым Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ.

Π‘Π½Π°Ρ‡Π°Π»Π° выполняСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‚Π΅ΠΌ происходит присваиваниС. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния num = 5+5*5. Π‘Π½Π°Ρ‡Π°Π»Π° выполнится ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅, Π·Π°Ρ‚Π΅ΠΌ слоТСниС, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ присваиваниС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сокращСнного присваивания.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int digit = 5;

digit +=5; // digit = digit+5 — Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ 10
digit -=5; // 5
digit *=5 // 25

УсловныС выраТСния

УсловныС выраТСния всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ true ΠΈΠ»ΠΈ false. УсловныС выраТСния Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ условными ΠΈ логичСскими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ. Π˜Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ Π² простых выраТСниях, Ρ‚Π°ΠΊ ΠΈ логичСских конструкциях, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π° ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сравнСния

//ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ==(Ρ€Π°Π²Π½ΠΎ)

int varA = 10;
int varB = 4;
bool varC = varA == varB; // false

//ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ !=(Π½Π΅Ρ€Π°Π²Π½ΠΎ)

int digitA = 20;
int digitB = 14;
bool digitC = digitA != digitB; // true
bool digitD = digitA!=20; // false

// ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ > (большС)

int с = 10;
int d = 4;
bool e = c > d; // true

// ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ < (мСньшС)

int с = 10;
int d = 4;
bool e = c < d; // false

 

//ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ >= ΠΈ <= (большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ, мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ)

int aa = 100;
int bb = 40;
bool cc = aa <= bb; // false
bool dd = aa <= 25; // true
bool cc = aa >= bb; // true
bool dd = aa <= 100; // true

ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² условных выраТСниях

ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ нСсколько сравнСниС ΠΈ Π² зависимости ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Ρ‹Π΄Π°Ρ‚ΡŒ true ΠΈΠ»ΠΈ false

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ ||

boΠΎl logOR = 55==55 || 34<12; // true, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ сравнСниС Π²Π΅Ρ€Π½ΠΎ

// ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈ &&

bool log& = 32<234 && 100>=100; // true, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±Π° сравнСния Π²Π΅Ρ€Π½Ρ‹ — Ссли Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ сравнСниС Π½Π΅ Π²Π΅Ρ€Π½ΠΎ, Ρ‚ΠΎ false

// ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π½Π΅ !

bool not = !»hello»; // false, строка Ρ€Π°Π²Π½Π° true, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ! провСряСт: строка Π½Π΅ true?

УсловныС конструкции

УсловныС конструкции Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Π²Ρ‹Π±ΠΎΡ€Π° выполнСния Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ участкС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Если true, Ρ‚ΠΎ выполняСтся ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, Ссли false, Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Π•ΡΡ‚ΡŒ нСсколько Π²ΠΈΠ΄ΠΎΠ² условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²:

  • if(){} — Ссли true, Ρ‚ΠΎ выполняСтся Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, Π² ΠΈΠ½ΠΎΠΌ случаС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ выполняСтся дальшС, Π° Π±Π»ΠΎΠΊ пропускаСтся
  • if(){}else{} — ΠΏΡ€ΠΈ true выполняСтся Π±Π»ΠΎΠΊ if, ΠΏΡ€ΠΈ false выполняСтся Π±Π»ΠΎΠΊ else
  • if(){}else if(){}else — Ссли false Π² if, Ρ‚ΠΎΠ³Π΄Π° провСряСтся else if, Π² ΠΈΠ½ΠΎΠΌ случаС выполняСтся else
  • switch(){case:, case:, case, default} — конструкция Π²Ρ‹Π±ΠΎΡ€Π° соотвСтствия Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π² скобках ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· case, Ссли Π½Π΅ соотвСтствуСт, Ρ‚ΠΎ выполняСтся Π±Π»ΠΎΠΊ default

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// if(){}

int numberValue = 10
if(numberValue==10){
Console.write(«correct»); // Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ true, Ρ‚ΠΎ выполнится эта строка ΠΊΠΎΠ΄Π°
// Ссли Π² Π±Π»ΠΎΠΊΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° строка, Ρ‚ΠΎ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ
}

// if(){}else{}

String name = «Jonathan»;

if(name == «Jon»){
Console.write(«correct name»)
}else{
Console.write(«It is mistake»); // выполнится этот Π±Π»ΠΎΠΊ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² if Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅Ρ€Π½Π΅Ρ‚ false
}

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

int digit_value = 345;

if(digit_value>1000){
Console.write(«Π’ыполнился Π±Π»ΠΎΠΊ if»);
}else if(digit_value<1000){
Console.write(«Π’ыполнился Π±Π»ΠΎΠΊ else if»); // Выполнится этот Π±Π»ΠΎΠΊ
}else{
Console.write(выполнился Π±Π»ΠΎΠΊ else);
}

 

// конструкция switch case

string day = «Friday»;

switch(day){
case «Monday»: Console.write(«ΠΠ΅ Ρ‚ΠΎΡ‚ дСнь»);
break;
case «Saturday»: Console.write(«ΠΠ΅ Ρ‚ΠΎΡ‚ дСнь»);
break;
case «Friday»: Console.write(«Π”Π°, сСгодня пятница»); // выполнится эта строка, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ case ΠΈ Π² скобках Ρ€Π°Π²Π½Ρ‹
break;
default: Console.write(«ΠΠ΅ ΡƒΠ³Π°Π΄Π°Π½ Π½Π΅ ΠΎΠ΄ΠΈΠ½ дСнь»);
}

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «break». Π•Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ порядкС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π΅Π³ΠΎ отсутствии Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ всС case, ΠΈΠ΄ΡƒΡ‰ΠΈΠ΅ послС ΡƒΠ³Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ.

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² C#

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… — это Ρ‚ΠΈΠΏΡ‹ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ язык. Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ костяком программирования, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π° счСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ВсСго Π² C# 6 Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…:

  1. Π¦Π΅Π»Ρ‹Π΅ числа: int, uint, long, ulong, byte, sbyte, short, ushort — ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… отличаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΎΡ‚Π²ΠΎΠ΄ΠΈΠΌΠΎΠΉ памяти для Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°.
  2. Числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ: float, double, decimal.
  3. Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ: char — Π±ΡƒΠΊΠ²Π° ΠΈΠ»ΠΈ Ρ†ΠΈΡ„Ρ€Π° обрамлСнная Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ
  4. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠΉ: String — ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст ΠΎΠ±Ρ€Π°ΠΌΠ»Π΅Π½Π½Ρ‹ΠΉ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Ρ‡ΠΊΠΈ ΠΈΠ· Π»ΡŽΠ±Ρ‹Ρ… символов юникода, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠΉΡΡ массивом символов
  5. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹: Object — любой ΠΈΠ· пСрСчислСнных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… отводится 4 Π±Π°ΠΉΡ‚Π° Π² 32-разрядной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС ΠΈ 8 Π±Π°ΠΉΡ‚ Π² 64-Ρ….
  6. ЛогичСскиС: bool — true ΠΈΠ»ΠΈ false.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// цСлочислСнныС

int x = 578;
short y = 34;

// с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ

double x = 3.45;
decimal y = 34342.33434;

// ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅

char h = ‘a’;
char n = ‘V’;
char r = ‘3’;

// логичСскиС

bool s = true;
bool d = false;

// Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

string m = «ΠŸΡ€ΠΈΠ²Π΅Ρ‚, мСня Π·ΠΎΠ²ΡƒΡ‚ ΠŸΠ΅Ρ‚Ρ»;
string z = «My favourite school subject is geometry»;

// ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

object a = 5;
object d = «Hello»;
object f = ‘s’;

Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Π² консоль

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π°Π·ΠΈΡ‚ΡŒ тСкст ΠΈΠ»ΠΈ числа ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ вывСсти Π½Π° экран. Один ΠΈΠ· способов Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… являСтся ΠΈΡ… ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Π² консоли. Для этого Π² C# прСдусмотрСн статичСский класс Console, находящийся Π² пространствС ΠΈΠΌΠ΅Π½ System, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π° Π΅Π³ΠΎ статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: write() — Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС, Ρ‡Ρ‚ΠΎ Π² скобках Π½Π° экран консоли; writeLine() — Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС содСрТимоС скобок ΠΈ послС этого ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ курсор Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Consle.write(5);
Consle.write(5);
Consle.write(5);
// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ станСт 555

Consle.writeline(5);
Consle.writeline(5);
Consle.writeline(5);

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚
5
5
5

// Π’Ρ‹Π²ΠΎΠ΄ содСрТимого ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

int num = 78;
Consle.write(num); // 78

Π˜Π½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡ — Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ сразу нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… вмСстС с тСкстом Π·Π° счСт символа $ ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок{}.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int digit = 458;
char ch = ‘b’;

Console.log($»code of symbol {ch} equals {digit}»); // code of symbol b equals 458

// Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

Console.log(«code of symbol {0} equals {1}», ch, digit); // Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π΅

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ интСрполяции ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ — этот способ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Console.WriteLine прСдставляСт Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡƒΡŽ строку («Π˜ΠΌΡ: {0} Возраст: {2} Рост: {1}ΠΌ»). ВсС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ встроСны Π² эту строку (name, height, age). ΠŸΡ€ΠΈ этом Π²Π°ΠΆΠ΅Π½ порядок ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

НапримСр, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ΄Π΅Ρ‚ name, ΠΏΠΎΡ‚ΠΎΠΌ height ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ age. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρƒ name Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ 0 (нумСрация начинаСтся с нуля), height ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ 1, Π° age — Π½ΠΎΠΌΠ΅Ρ€ 2. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² строкС «Π˜ΠΌΡ: {0} Возраст: {2} Рост: {1}ΠΌ» Π½Π° мСсто плСйсхолдСров {0}, {2}, {1} Π±ΡƒΠ΄ΡƒΡ‚ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ значСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π’Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· консоли

МоТно Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² консоль, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ самой консоли. Для этого прСдусмотрСн статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ Console.ReadLine(). Когда компилятор столкнСтся с Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ввСсти Π½Π΅ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… прСдусмотрСнных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Enter. ПослС этого Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° продолТится.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Console.WriteLine(«ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ свою Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ»);

string surname = Console.ReadLine();

Console.WriteLine(surname);

// Π’Ρ‹Π²ΠΎΠ΄: ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ свою Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ
ΠŸΡƒΠΏΠΊΠΈΠ½ + Enter
ΠŸΡƒΠΏΠΊΠΈΠ½

Π―Π²Π½ΠΎΠ΅ ΠΈ нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ C # статичСски типизируСтся Π²ΠΎ врСмя компиляции, послС объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΅Π΅ нСльзя ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ снова ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ссли этот Ρ‚ΠΈΠΏ Π½Π΅ являСтся нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. НапримСр, string нСльзя нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² int. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚Π΅ iΠΎΠ±ΡŠΠ΅ΠΊΡ‚ int, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΌΡƒ строку Β«HelloΒ».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int some_var;

some_var = «Vova»; // Ошибка, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ числовому ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ присваиваСтся строка

Однако ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. НапримСр, Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ цСлочислСнная пСрСмСнная, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ double. Или Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ класса ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚ΠΈΠΏΠ° интСрфСйса. Π’Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ².

Π’ C # Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ:

  1. НСявныС прСобразования: ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ синтаксиса Π½Π΅ трСбуСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ всСгда выполняСтся ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ прСобразования ΠΈΠ· ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² Π² большиС ΠΈ прСобразования ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов Π² Π±Π°Π·ΠΎΠ²Ρ‹Π΅ классы.
  2. Π―Π²Π½Ρ‹Π΅ прСобразования (привСдСния) : для явных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ трСбуСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ привСдСния . Врансляция трСбуСтся, ΠΊΠΎΠ³Π΄Π° информация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ потСряна ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ числовоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ‚ΠΈΠΏ с мСньшСй Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ мСньшим Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ экзСмпляра Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс.
  3. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ прСобразования . ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ прСобразования Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ явных ΠΈ нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ классом. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ прСобразования, опрСдСляСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.
  4. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… классов : для прСобразования ΠΌΠ΅ΠΆΠ΄Ρƒ нСсовмСстимыми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Ρ†Π΅Π»Ρ‹Π΅ числа ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ System.DateTime , ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ строки ΠΈ Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅ массивы, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс System.BitConverter, класс System.Convert ΠΈ ParseΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ встроСнного -Π² числовых Ρ‚ΠΈΠΏΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Int32.Parse . Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π’ Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ массив Π±Π°ΠΉΡ‚ΠΎΠ² Π² int , Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² число ΠΈ Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠΈ строками ΠΈ числовыми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.

НСявныС прСобразования(привСдСния Ρ‚ΠΈΠΏΠΎΠ²)

Для встроСнных числовых Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° сохраняСмоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π· усСчСния ΠΈΠ»ΠΈ округлСния. Для цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ исходного Ρ‚ΠΈΠΏΠ° являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ подмноТСством Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

НапримСр, пСрСмСнная Ρ‚ΠΈΠΏΠ° long (64-Π±ΠΈΡ‚Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число) ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ int (32-Π±ΠΈΡ‚Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число). Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ компилятор нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ numсправа Π² Ρ‚ΠΈΠΏ long ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ присвоСниСм BigDigit.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int digit = 3434234234;
long BigDigit = digit; // присвоСниС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΈ int прСобразовался Π² long, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ long большС, Ρ‡Π΅ΠΌ int

Π―Π²Π½Ρ‹Π΅ прСобразования Ρ‚ΠΈΠΏΠΎΠ²

Однако, Ссли ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Π±Π΅Π· риска ΠΏΠΎΡ‚Π΅Ρ€ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, компилятор Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ явнoΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ называСтся ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ . ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ — это способ явно ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ компилятору, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ потСря Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒΡΡ ошибкой Π²ΠΎ врСмя выполнСния.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ выполняСтС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Ρ… скобках ΠΏΠ΅Ρ€Π΅Π΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€aΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ double Π² int . ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ скомпилируСтся Π±Π΅Π· привСдСния.

double some_num = 1454.7;
int val;

//ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ цСлочислСнный Π² Ρ‚ΠΈΠΏ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ
val = (int)some_num; // Ρ‚ΠΈΠΏ Π² скобках Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ явном ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ
Console.WriteLine(a); // 1454

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ссылочныС

Π—Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄aΠ½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ числовыС, строковыС, символы, логичСскиС. Бсылочными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π—Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ хранятся Π² стСкС. БсылочныС Π² ΠΊΡƒΡ‡Π΅.
Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° являСтся ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² ΠΊΡƒΡ‡Π΅. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ссылочного Ρ‚ΠΈΠΏΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ нСсколько ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². ИзмСнСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄ΠΈΠ½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ Π΅Π³ΠΎ для всСх ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// Π—Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ

int b = 5;
int c = b; // 5

c = 10;
Console.write(b); // 5

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ сохранили ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΡƒΡŽ. ИзмСнив Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅ΠΆΠ½ΠΈΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ с ссылочным Ρ‚ΠΈΠΏΠΎΠΌ.

class House(){
public int width: 120;
}

House motel = new House();

House shop = motel;

Console.write(motel.width); // 120
Console.write(shop.width); // 120

//ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ свойство ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

motel.width = 140;

Console.write(motel.width); // 140
Console.write(shop.width); // 140

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ присвоСнии ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ shop ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° motel — просто Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π²ΡƒΠΌ ссылкам. Они ΠΎΠ±Π΅ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Если Π±Ρ‹ ΠΌΡ‹ создали shop Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new, Ρ‚ΠΎΠ³Π΄Π° это Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΠΆΠ΅ Π΄Π²Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π¦ΠΈΠΊΠ»Ρ‹

Как ΠΈ Π² любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС, C# ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ»Ρ‹ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠΎΠ²: for, for each, while, do while. Π¦ΠΈΠΊΠ»Ρ‹ — это способ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ мноТСство Ρ€Π°Π· ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.

Π¦ΠΈΠΊΠ» for

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

for(int x = 0; x>=10; x++){
Console.Write(«a «);
}

// Π²Ρ‹Π²ΠΎΠ΄: a a a a a a a a a a

Π—Π΄Π΅ΡΡŒ объявлСнная пСрСмСнная x = 0 являСтся стартовой ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ счСтчика, x>=10 ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ. Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ x++ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ счСтчик Π½Π° 1 ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π°. Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ — это ΠΎΠ΄Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»Π°. Π£ нас Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡŒ 10 ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break ΠΈ continue ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ†ΠΈΠΊΠ». Break ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ†ΠΈΠΊΠ»Π°, Π·Π°Ρ‚Π΅ΠΌ продолТаСтся дальнСйшСС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²Π½Π΅ Π±Π»ΠΎΠΊΠ° Ρ†ΠΈΠΊΠ»Π°. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ continue пропускаСт ΠΎΠ΄Π½Ρƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// continue

for(int x = 0; x>=10; x++){
if(x==10) continue; // пропуск послСднСй ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ
Console.Write(«a «);
}

//Π˜Ρ‚ΠΎΠ³: a a a a a Π° Π° Π° Π° = 9 Ρ€Π°Π·

// break

for(int x = 0; x>=10; x++){
if(x>5) break; // Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°
Console.Write(«a «);
}

//Π˜Ρ‚ΠΎΠ³: a a a a a

Π¦ΠΈΠΊΠ» while ΠΈ do while

Π”Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ со счСтчиком, Ρ‚Π°ΠΊ ΠΈ с логичСскими выраТСниями. Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ счСтчика Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π² скобках, Π° самом Π±Π»ΠΎΠΊΠ΅ int s = 0;

while(s!=10){
Console.Write(«b «);
s++;
}

// Π’Ρ‹Π²Π΅Π΄Π΅Ρ‚ b b b b b b b b b b

Π—Π΄Π΅ΡΡŒ пСрСмСнная s Ρ€Π°Π²Π½Π° 0. КаТдая итСрация ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ счСтчик Π½Π° 1 Π·Π° счСт s++, Π° Π² скобках true. Когда s Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π° 10, Ρ‚ΠΎ Π² скобках Π±ΡƒΠ΄Π΅Ρ‚ false. Π¦ΠΈΠΊΠ» ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π—Π΄Π΅ΡΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ break ΠΈ continue.

Аналогичным синтаксисом ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» do while, Π΅Π³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ лишь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ пСрвая итСрация выполняСтся Π² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ порядкС, Ссли Π² Π½Π΅ΠΉ Π½Π΅Ρ‚ continue. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎ выполнСния условия Π² скобках.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

do{
//ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π· выполняСтся, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π² зависимости ΠΎΡ‚ условия
}while(true)

Π¦ΠΈΠΊΠ» foreach

Π”Π°Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» примСняСтся для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° массивов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒΡΡ Π΄Π°Π»Π΅Π΅. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ массив ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π½Π΅Π΅ рассматриваСмыми Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ. Но foreach Π»ΡƒΡ‡ΡˆΠ΅ подстроСн ΠΈΠΌΠ΅Π½Π½ΠΎ для массивов ΠΈ позволяСт ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ(совсСм ΠΌΠ°Π»ΠΎ) Π½Π° Π΅Π³ΠΎ созданиС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

char[] symbols = {‘a’, ‘b’, ‘c’, ‘ d’}; // создали массив символов

// Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅ΠΌ всС символы Π² Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ рСгистр с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π°

foreach(int x in symbols){
symbols[x] = symbols[x].ToUpper();
}

Console.Write(symbols); // A B C D

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

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΡ… порядковым индСксом ΠΈ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ список ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ²: Π–ΡƒΡ€Π½Π°Π» класса Π‘(ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€), ΠŸΡƒΠΏΠΊΠΈΠ½, ΠŸΡƒΡˆΠΊΠΈΠ½, Π–ΠΎΡ€ΠΈΠΊΠΎΠ², Бамсонова. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ массив выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: char[] arr = {‘v’, ‘a’ ,’d’, ‘r’}; Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ создали массив ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… элСмСнтов. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ своим порядковым индСксом. Π‘ΠΈΠΌΠ²ΠΎΠ» v ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ индСксом, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π² порядкС ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. ΠžΡ‚ΡΡ‡Π΅Ρ‚ элСмСнтов массива начинаСтся с нуля.

Π§Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² нашСм массивС:

  • char[] — объявлСниС Ρ‚ΠΈΠΏΠ° элСмСнтов массива, Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ создаСтся массив;
  • arr — ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ массива;
  • {v’, ‘a’ ,’d’, ‘r’} — массив ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… элСмСнтов с индСксами [0], [1], [2], [3].

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ массивы, Ссли ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ? ΠžΡ‚Π²Π΅Ρ‚ прост — для удобства. НСцСлСсообразно Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ логичСски связанныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π“ΠΎΡ€Π°Π·Π΄ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для этого массивы, ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² нашСм ΠΆΡƒΡ€Π½Π°Π»Π΅ ΡƒΡ‡Π΅Π½ΠΈΠΊΠΎΠ². Π•ΡΡ‚ΡŒ нСсколько способов создания массивов. Рассмотрим ΠΈΡ… Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// создадим ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ массив Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами

int[] numbers = {34, 43, 72, 90};

int[] numbers = new [] {34, 43, 72, 90};

int[] numbers = new int[] {34, 43, 72, 90};

int[] numbers = new int[4] { 1, 2, 3, 5 }; // с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Ρ‹

// ручная инициализация

int[] numbers = new int[];
numbers[0] = 34;
numbers[1] = 43;
numbers[2] = 72;
numbers[3] = 90;

Если массив создан с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΠ½Ρ‹, Π½ΠΎ, Π±Π΅Π· присвоСнных элСмСнтов, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ пустой массив, Ρ‚ΠΎ Π² этом случаС пустыС элСмСнты ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для чисСл ΠΈ символов это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0, для строк — пустыС строки «».

Наш массив Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ элСмСнтами, поэтому ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ пятому. Π”Π°ΠΆΠ΅ Ссли массив пустой, Ρ‚ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Но Ссли ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ элСмСнту, находящСмуся Π²Π½Π΅ ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ² массива с индСксом 5 ΠΊΠ°ΠΊ Π² нашСм случаС, Ρ‚ΠΎ компилятор выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ.

Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π²ΠΎΠ΄ всСх Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ массива. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int[] massiv = new int[5]; // создали Π½ΠΎΠ²Ρ‹ΠΉ массив
Console.WriteLine(«Π”Π»ΠΈΠ½Π° массива {0}», massiv.Length); // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° экран Π΄Π»ΠΈΠ½Ρƒ массива, свойство Length позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ массива

// заполняСм массив Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» for

for(int x = 0; x<=massiv.Length; x++){
massiv[x] = x+5;
}

//Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ содСрТимоС массива

foreach(num in massiv){
Console.WriteLine(massiv[num]);
}

// Π²Ρ‹Π²ΠΎΠ΄:
Π”Π»ΠΈΠ½Π° массива 5

6, 7, 8, 9, 10

// ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ массива.

Console.WriteLine(massiv[6]); // IndexOutOfRangeException — Ошибка: ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ индСксу, находящСгося Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ массива

Массив ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ с фиксированной Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. Π’ΠΎΠ³Π΄Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ пустыС элСмСнты ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

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

ΠœΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив — массив массивов. Π’ΠΎ Π΅ΡΡ‚ΡŒ — элСмСнтами массива ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы. Π”Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив — массив массивов. Π’Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив — массив массивов, элСмСнтами ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ массивы. Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ созданиС Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int[][] two_dimension_array = {{23, 34, 56}, {54, 89, 10}}; // объявлСниС Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ скобки

Console.WriteLine(two_dimension_array[0][0]); // 23
Console.WriteLine(two_dimension_array[1][0]); // 54
Console.WriteLine(two_dimension_array[1][2]); // 10

// Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив с фиксированной Π΄Π»ΠΈΠ½ΠΎΠΉ

int[][] two_dimension_array = new int[2][4]; // объявлСн массив Π΄Π²ΡƒΡ… массивов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит ΠΏΠΎ 4 элСмСнта

Console.WriteLine(two_dimension_array.Length); // 2
Console.WriteLine(two_dimension_array[0].Length); // 4

// Π·Π°ΠΏΠΎΠ»Π½ΠΈΠΌ массив Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ»

for(int i = 0; i<=two_dimension_array.Length; i++){ // количСство ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Ρ€Π°Π²Π½ΠΎ количСству массивов Π² массивС
for(int j = 0; j<=two_dimension_array[i].Length; j++){ // количСство массивов Ρ€Π°Π²Π½ΠΎ количСству элСмСнтов Π² итСрациях
two_dimension_array[i][j] = j;
}
}

Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ массивы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ самыми Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠΎ количСству ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Однако Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ‡Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ с большим количСством ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ становится тяТСло Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

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

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. МоТно бСсконСчно ΠΎΠ±ΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΎΠ½ΠΈ приносят. Однако ΠΈΡ… основной смысл — экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ программиста, ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ экономия памяти. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языках Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. Π›ΡŽΠ±Π°Ρ, Π΄Π°ΠΆΠ΅ однострочная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² C# являСтся экзСмпляром класса. Главная функция Main Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… языков программирования ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…, ΠΊΡ€ΠΎΠΌΠ΅ ООП. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ — ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² C # — это части Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для очистки ΠΊΠΎΠ΄Π°, Ρ€Π°Π·Π΄Π΅Π»ΠΈΠ² Π΅Π³ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части. Π˜Ρ… Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ΄.

Π’ C#, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π‘-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языках, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой внСшниС Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиС классы ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Π­Ρ‚ΠΎ позволяСт Π»Π΅Π³ΠΊΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ… ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколькими ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄ описываСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Π•Π³ΠΎ описаниС ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΎ нСсколько строк. Π’ Π±Π»ΠΎΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° находятся строки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Боль этой систСмы Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° осущСствляСтся всСго Π² ΠΎΠ΄Π½Ρƒ строчку. Если Π±Ρ‹ Π½Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚ΠΎ програмисту ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΈ нСобходимости.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° запускаСт процСсс выполнСния Π±Π»ΠΎΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΡ†eсс выполняeтся, ΠΊΠΎΠ³Π΄Π° программист Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄, поэтому Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ с использованиСм этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ описанию ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π³Π΄Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ всС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π½Π΅Π³ΠΎ. Π—Π°Ρ‚Π΅ΠΌ выполняeтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return, ΠΈ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ возвращаСтся Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ.

Рассмотрим Π½Π° условном ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡƒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ синтаксису C#. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

функция Π²ΡΠΊΠΈΠΏΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π°ΠΉΠ½ΠΈΠΊ{
Π½Π°Π»ΠΈΡ‚ΡŒ Π² Ρ‡Π°ΠΉΠ½ΠΈΠΊ Π²ΠΎΠ΄Ρ‹;
Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ‡Π°ΠΉΠ½ΠΈΠΊ;
Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ срабатывания Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠΊΠΈ;
}

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π² ΠΊΠΎΠ΄Π΅ Π½ΡƒΠΆΠ½ΠΎ 25 Ρ€Π°Π· Π²ΡΠΊΠΈΠΏΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π°ΠΉΠ½ΠΈΠΊ. Как Π²ΠΈΠ΄Π½ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρƒ нас 3 строки ΠΊΠΎΠ΄Π°. И Ρ‚ΠΎΠ³ΠΎ: 25 * 3 = 75. На придСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 75 строчСк ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ 25 Ρ€Π°Π· Π²ΡΠΊΠΈΠΏΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π°ΠΉΠ½ΠΈΠΊ. Волько ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΊΠ°ΠΊ это скаТСтся Π½Π° самом программистС, сколько тСкстовой памяти Π·Π°ΠΉΠΌΠ΅Ρ‚. Π­Ρ‚ΠΎ называСтся Π½Π΅Π»Π΅ΠΏΠΎ Ρ€Π°ΡΠΏΠΎΡ€ΡΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, осущСствляСтся всСго Π² ΠΎΠ΄Π½Ρƒ строчку. Наша функция Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π²ΡΠΊΠΈΠΏΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π°ΠΉΠ½ΠΈΠΊ(). Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ Ρ‚Π΅ строки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² Π±Π»ΠΎΠΊΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°ΠΌ Π½Π°Π΄ΠΎ всСго 25 Ρ€Π°Π· Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Если ΠΆΠ΅ трСбуСтся Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π΅ 25 Ρ€Π°Π· подряд, Π° Π½Π΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ… участках ΠΊΠΎΠ΄Π°, Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‡Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ это Π½Π° условном ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

for(int h = 0; h<=25; h++){
Π²ΡΠΊΠΈΠΏΡΡ‚ΠΈΡ‚ΡŒ Ρ‡Π°ΠΉΠ½ΠΈΠΊ();
}

Как Π²ΠΈΠ΄Π½ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ способ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π½Π°ΠΌ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ всСго трСмя строками ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ экономит Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ.
Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π½Π°Π±ΠΎΡ€Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° снова ΠΈ снова ΠΈΠ»ΠΈ снова ΠΈ снова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.

НаписаниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ΄ ΠΎΠ±Ρ‰ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ (ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°) ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² этого ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ усилия ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ: написаниС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ΄Π° Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ для экономии Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ использования памяти. Π’ этой Π³Π»Π°Π²Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎΠ± использовании ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² C #, ΠΈΡ… синтаксисС ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… характСристиках.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

Π‘ основными понятиями ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ C#. Π•ΡΡ‚ΡŒ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²: Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ просто ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ опрСдСлСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: public static void method_name(){}. Он состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов:

  1. Public static- ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа. Π’ ООП всС Ρ‡Π»Π΅Π½Ρ‹ классов ΠΈΠΌΠ΅ΡŽΡ‚ свой ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа. Π’ Π³Π»Π°Π²Π½ΠΎΠΌ классС Π²Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Main всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ статичСскими. ВсСго Π΅ΡΡ‚ΡŒ нСсколько ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² доступа. Π­Ρ‚ΠΎ public(ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ), static(статичСский), private(Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ), protected(Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ). Π’ нашСм случаС ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ статичСский ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.
  2. Void — это ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚. Аналогичный присутствуСт Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Main.
  3. method_name — Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ — Π΅Π³ΠΎ имя.
  4. () — скобки ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это ΠΌΠ΅Ρ‚ΠΎΠ΄, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π² сСбя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Наш ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ€ΠΎΠ².
  5. {} — Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

public static void sayHelloThreeTimes(){ // опрСдСляСм ΠΈ описываСм ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·
Console.Write(«Hello «);
Console.Write(«Hello «);
Console.Write(«Hello «);
}

// Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

sayHelloThreeTimes();
sayHelloThreeTimes();
sayHelloThreeTimes();

Π’Ρ‹Π²ΠΎΠ΄ Π² консоль:
Hello Hello Hello
Hello Hello Hello
Hello Hello Hello

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ значСния ΠΈΡ… сигнатура отличаСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ вмСсто слова void, ставится Ρ‚ΠΈΠΏ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π° Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ставится ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово return Π° послС Π½Π΅Π³ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

public static int Multy_two_digits()
{
int x = 5;
int y = 5;
return x * y;

}

int result = Multy_two_digits();
Console.Write(result); // 25

Π’ Π±Π»ΠΎΠΊΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€ΠΈ строки ΠΊΠΎΠ΄Π°. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ арифмСтичСского выраТСния.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ значСния для использования ΠΈΡ… ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² — это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ запятой-Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для Π²Π²ΠΎΠ΄Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΈ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ…. Они Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² спискС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ опрСдСлСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

public static int Multy_two_variable(int a, int b)
{

return a * b;

}

Console.WriteLine(Multy_two_variable(2,2)); // 4
Console.WriteLine(Multy_two_variable(25,2)); // 50

Как Π²ΠΈΠ΄Π½ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ любой ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Если Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ это Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ пСрСдадутся ΠΈΡ… значСния.

Π­Ρ‚ΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, Ρ†Π΅Π»ΠΎΠ΅ число a ΠΈ Ρ†Π΅Π»ΠΎΠ΅ число b, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ прСдоставляСтС Π²Π²ΠΎΠ΄ для ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΌΠ΅Ρ‚ΠΎΠ΄Π°). ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return останавливаСт ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΈ (Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π²Ρ‹Π²ΠΎΠ΄Π°) ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ ΠΈ Ρ‚ΠΈΠΏ Π²Ρ‹Π²ΠΎΠ΄Π°.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ значСния. Он примСняСтся просто для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ это нагляднСС, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

public static int Multy_two_variable(int a, int b)
{
if(a==0 && b==0) return; // досрочный Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹
else return a * b; // Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ большС 0, Ρ‚ΠΎ выполняСтся ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

}

int a = Multy_two_variable(0, 0);
int b = Multy_two_variable(3, 3);

Console.WriteLine(a); // Ошибка — пСрСмСнная Π½Π΅ содСрТит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Π’ΡƒΡ‚ ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Π΅Ρ€Π½ΡƒΠ»ΠΈ
Console.WriteLine(b); // 9

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

Π’ C# прСдусмотрСны Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ лямбда выраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

static void SaySomething() // простой ΠΌΠ΅Ρ‚ΠΎΠ΄ написанный ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ
{
Console.WriteLine(«My name is Petya»);
}

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ сократим Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ лямбда Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

static string SaySomething() => Console.WriteLine(«My name is Petya»);

// Если Π±Ρ‹ ΠΌΡ‹ вмСсто Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° экран использовали ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ return, Ρ‚ΠΎ лямбда выраТСния выглядСли Π±Ρ‹ Ρ‚Π°ΠΊ:

static string SaySomething() =>»My name is Petya»;

Массив Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ простыС Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ массив. Для этого примСняСтся ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово params. ΠŸΡ€ΠΈ этом, Ρ€Π΅Ρ‡ΡŒ Π½Π΅ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ простого массива. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ количСства ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

static void arr_params(params int[] integ)
{
int result = 0;
for (int i = 0; i < integ.Length; i++)
{
result += integ[i];
}
Console.WriteLine(result);
}

Addition(1, 2, 3, 4, 5); // Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ количСством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

int[] array = new int[] { 1, 2, 3, 4 };
Addition(array); // количСство ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π°Π²Π½ΠΎ количСству элСмСнтов массива, Π° Π² качСствС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ставятся значСния массива

Addition(); // Π²Ρ‹Π·ΠΎΠ² Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС

Массив params Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π±Ρ‹Π»ΠΈ цСлочислСнныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Если ΠΊΡ€ΠΎΠΌΠ΅ массива ΠΌΡ‹ собираСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом params.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

static void Many_Params( int a, string s, params int[] integ){} // ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π΄ΠΎ массива params

static void Many_Params(params int[] integ, int a, string s){} // Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ сработаСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ массив ΡƒΠΊΠ°Π·Π°Π½ Π΄ΠΎ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Π‘Ρ‹Π²Π°ΡŽΡ‚ ситуации, ΠΊΠΎΠ³Π΄Π° вмСсто массива ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ просто массив Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: static void Many_Params( int a, string s, int[] integ). Π’ этом случаС нСльзя Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с количСством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ массив Π½Π΅ ΠΈΠ½Π°Ρ‡Π΅.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎ врСмя Π²Ρ‹Π·ΠΎΠ²Π° этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ возвращаСтся, ΠΏΠ°ΠΌΡΡ‚ΡŒ, выдСлСнная для Π»ΡŽΠ±Ρ‹Ρ… Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, освобоТдаСтся.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

int x = 5;
int z = 10; // Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main

static void change_variables(int a, int b){
a = a+5;
b = b+5;
Console.WriteLine(a);
Console.WriteLine(b);
}

change_variables(a, b); // 10 15

Console.WriteLine(a); // 5 — Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ измСнились, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ… значСния.
Console.WriteLine(b); //10

Π‘Π°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ становятся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. НСрeΠ΄ΠΊΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚eкстов ΠΌΠΎΠΆΠ½ΠΎ Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹ΠΌΠΈ скобками, ΠΊΠ°ΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, класса. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π½Π°Π΄ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»eΠ½Π½Ρ‹Π΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΈΠ»ΠΈ Π² Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°, скрывaΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ уровня класса, Ссли ΠΈΡ… ΠΈΠΌΠ΅Π½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ссылкС

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ref Π² C # ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ссылок Π½Π° значСния Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ ΠΈΠ· Π½ΠΈΡ… . По сути, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ значСния, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ ссылкС, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ измСняСтС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ адрСсу, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

  1. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ ΠΏΠΎ Π΅Π³ΠΎ ссылкС.
  2. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ сигнатуру ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ссылку Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.
  3. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ структуру ΠΊΠ°ΠΊ ref struct.
  4. Как мСстная ссылка.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

public static void addValue(int a){
a += 10;
}

// Define subtractValue
// ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‡Π΅Ρ€Π΅Π· ссылку ref

public static void subtractValue(ref int b){
b -= 5;
}

// Π—Π°ΠΏΠΈΡΡŒ основного Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
int a = 10, b = 12;

// ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ установлСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Console.WriteLine(«Initial value of a is {0}», a);
Console.WriteLine(«Initial value of b is {0}», b);
Console.WriteLine();

// Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ
addValue(a);

Console.WriteLine(«Value of a after addition»+
» operation is {0}», a);

// Π’Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠΎ ссылкС
subtractValue(ref b);

// ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ значСния b Π±Π΅Π· ссылки Π½ΠΎ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ
Console.WriteLine(«Value of b after «+
«subtration operation is {0}», b);

Π’Ρ‹Π²ΠΎΠ΄ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст:

ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ a Ρ€Π°Π²Π½ΠΎ 10
ΠΠ°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ b Ρ€Π°Π²Π½ΠΎ 12

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слоТСния 10
Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ b послС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ вычитания Ρ€Π°Π²Π½ΠΎ 7

Π§Ρ‚ΠΎ здСсь ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ? Π—Π΄eсь ΠΌΡ‹ опрСдСляСм Π΄Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° addValue ΠΈ subtractValue . ΠœΠ΅Ρ‚ΠΎΠ΄ addValue — это ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ измСняСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ своСго ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ‘a’ отобраТаСтся послС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΅Π³ΠΎ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² addValue, Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ различаСтся.

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄ subtractValue ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ссылку Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ref ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС. Π‘Π»Π΅Π΄ΠΎΠ²aΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ‘b’ отобраТаСтся послС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΅Π³ΠΎ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° для subtractValue , Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ измСнСния ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ. ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ref Π΄ΠΎΠ»ΠΆΠ½ΠΎ использовaΡ‚ΡŒΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄a, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ref с экзСмпляром класса. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρƒ нас Π΅ΡΡ‚ΡŒ класс Complex для прСдставлСния комплСксных чисСл. Класс Ρ‚Π°ΠΊΠΆΠ΅ состоит ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄Π° обновлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ обновлСния, сдСланныС Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΌΠ½ΠΈΠΌΠΎΠΉ части ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово out

Оно ΠΏΠΎΡ…ΠΎΠΆΠ΅ ΠΏΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ref. ΠŸΡ€ΠΈ этом, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ ref, out Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

static int Add_numbers(out int a)
{
a = 0;//присвоили Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
a++; //нарастил Π½Π° 1
return a;
}

// запишСм основной Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main
int b;
Console.WriteLine($»Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: {Addition(out b)}. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ послС выполнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: {b}»);

Π’Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:1. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ послС выполнСния ΠΌΠ΅Ρ‚ΠΎΠ΄Π°: 1.

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ Π² C#

ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ — это ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ хранСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠšΠΎΡ€Ρ‚Π΅ΠΆΠΈ Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° массивы, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ значСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

// Бпособы объявлСния ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ

var tupleOne = new Tuple(1);

var tupleTwo = new Tuple(1, «test»);

var sevenelementTuple = new Tuple(1,2,3,4,5,6,7);

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π°, Π±Ρ‹Π»ΠΈ созданы Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ свойства Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Item1, Item2, Item3 ΠΈ Ρ‚. Π΄. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ элСмСнтам ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· свойства. tupleOne.Item1 выдаст 1, большС Ρƒ этого ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠ° Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, поэтому ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ свойству Item2 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС.

TupleTwo создаСтся с двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠ°, Ρ‚.Π΅. int ΠΈ string. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ‚Π΅ΠΆ, содСрТащий Π΄ΠΎ сСми ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’ΠΎ Π΅ΡΡ‚ΡŒ — ΠΊΠΎΡ€Ρ‚Π΅ΠΆΠΈ хранят элСмСнты Π»ΡŽΠ±Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², это Π΅Π³ΠΎ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΎΡ‚ массива.

Π˜Ρ‚ΠΎΠ³

Бинтаксис C# Π²ΠΎΠ±Ρ€Π°Π» Π² сСбя всС самоС Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΈΠ· языков C, C++, Java. Π£ Π½Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ структурированная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков. Для Π½Π΅Π³ΠΎ написано ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ классов. Он ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ Windows ΠΈ вэб-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Он являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄Π²ΠΈΠΆΠΊΠ° Unity ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ³Ρ€.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±Ρ‹Π»ΠΈ пСрСчислСнныС основныС ΠΏΡ€Π°Π²ΠΈΠ»Π° написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° C#. Однако это Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ руководство ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ понятиС ΠΊΠ°ΠΊ «ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅».

По этой ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ программирования создано ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΊΠ½ΠΈΠ³. Упрощая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, эта ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° Π½Π΅ проста для изучСния. Π’Π΅, ΠΊΡ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π» Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с трудностями ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° ООП.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ Π½Π° C# ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠΌ стилС. Однако Ρ‚ΠΎΠ³Π΄Π° это Π½Π΅ сдСлаСт Π΅Π³ΠΎ эффСктивным языком. Π˜Π·ΡƒΡ‡Π°Ρ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ синтаксис языка, Π½Π΅ стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ классами ΠΈ графичСскими Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ.

ВсС Ρ‚Π°ΠΊΠΈ C# Π±Ρ‹Π» создан для создания ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Windows. Он позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ высоко Π½Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ прилоТСния для Web с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ASP.NEt, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с рСляционными Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *