Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C# для профСссионалов. Π’ΠΎΠΌ IIΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 149

Автор Π‘ΠΈΠΌΠΎΠ½ Робинсон

 } else if (NumberInput == 0) {

  txtSign.Text = "Zero";

  txtResult.Text = "0";

 } else {

  this.txtSign.Text = "Positive";

  this.txtResult.Text = Math.Sqrt(NumberInput).ToString();

 }

}

Бравнивая эти Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° ΠΊΠΎΠ΄Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ сходство Π² структурС ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°ΠΆΠ΅ Π±Π΅Π· всякого знания C# ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ происходит. Π’Π°ΠΊΠΆΠ΅ понятно, Ρ‡Ρ‚ΠΎ сущСствуСт мноТСство Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ Π² синтаксисС Π΄Π²ΡƒΡ… языков. Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ сравнСниС этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ синтаксис C#. Π’ Ρ…ΠΎΠ΄Π΅ этого процСсса ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ выявим различия ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ мСтодологиями C# ΠΈ VB.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ синтаксис

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΄Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ SquareRoot для ознакомлСния с синтаксисом C#.

Π‘# Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹

НачнСм с ΠΏΠ΅Ρ€Π²ΠΎΠΉ строки ΠΊΠΎΠ΄Π° VB, Π³Π΄Π΅ находится объявлСниС Option Explicit. Π­Ρ‚Π° инструкция Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³Π° Π² C#, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² C# ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ всСгда Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π΄ΠΎ своСго использования. Π­Ρ‚ΠΎ соотвСтствуСт Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ C# всСгда выполнялся с Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Option Explicit ΠΈ Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ этот Ρ€Π΅ΠΆΠΈΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅Ρ‚ нСобходимости явно ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Option Explicit.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ограничСния Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ C# Π±Ρ‹Π» ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ спроСктирован Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ случайноС созданиС ошибок Π² ΠΊΠΎΠ΄Π΅. Π’ VB Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Option Explicit, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это прСпятствуСт созданию Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ошибок, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ записанными ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Π›Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ C# Π½Π΅ позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с большой Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ошибкам.

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

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° всСгда Π²Π°ΠΆΠ½ΠΎ, поэтому дальшС Π² ΠΎΠ±ΠΎΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… (ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ дСлаСтся Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π° C#) добавляСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ:

// ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ событий наТатия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ Show Results.

// Выводится ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈ Π·Π½Π°ΠΊ числа

private void OnClickShowResults(object sender, System.EventArgs e) {

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

// Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ опрСдСляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

int Result = 10 * Input; // ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

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

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ символов /* ΠΈ */. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ссли компилятор встрСчаСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ /*, ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вСсь ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ тСкст являСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ, ΠΏΠΎΠΊΠ° Π½Π΅ встрСтит ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ */. Π­Ρ‚ΠΎ позволяСт ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° нСсколько строк:

/* этот тСкст Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ являСтся Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ

Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ

Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ

Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ

ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ * /

ΠšΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² строкС Π²ΠΎ врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ:

X = /* 20 */ 15;

Π’Ρ€Π΅Ρ‚ΠΈΠΉ способ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ. Однако Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Ρ€ΠΈ слэша:

/// <summary>

/// Event handler for user clicking Show Results button.

/// Displays square root and sign of number

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void OnClickShowResults(object sender, System.EventArgs e)

Если Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ Π½Π°ΠΊΠ»ΠΎΠ½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ вмСсто Π΄Π²ΡƒΡ…, Ρ‚ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ продолТаСтся Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки. Однако этот ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: компилятор C# способСн Π½Π° самом Π΄Π΅Π»Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с Ρ‚Ρ€Π΅Ρ… Π½Π°ΠΊΠ»ΠΎΠ½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ автоматичСски ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ для исходного ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» XML. ИмСнно поэтому ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ достаточно Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ структуру для Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ тСкста коммСнтария. Π­Ρ‚Π° структура Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ XML. Π—Π΄Π΅ΡΡŒ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ прСдставлСны Π΄Π΅Ρ‚Π°Π»ΠΈ этого процСсса (ΠΎΠ½ рассмотрСн Π² Π³Π»Π°Π²Π΅ 3). НСобходимо Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ коммСнтируя ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² ΠΊΠΎΠ΄Π΅, ΠΌΠΎΠΆΠ½ΠΎ автоматичСски ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, которая обновляСтся ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ докумСнтация соотвСтствуСт сигнатурам ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Ρ‚.Π΄.

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° инструкций

НаиболСС Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π°ΠΌΠΈ Π½Π° VB ΠΈ Π½Π° C# Π±ΡƒΠ΄Π΅Ρ‚, ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка, присутствиС Ρ‚ΠΎΡ‡Π΅ΠΊ с запятыми ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок Π² ΠΊΠΎΠ΄Π΅ C#. Π₯отя это Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ C# довольно ΡƒΡΡ‚Ρ€Π°ΡˆΠ°ΡŽΡ‰ΠΈΠΌ, ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° самом Π΄Π΅Π»Π΅ ΠΎΡ‡Π΅Π½ΡŒ простой. Visual Basic примСняСт Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ для указания ΠΊΠΎΠ½Ρ†Π° инструкции, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π² C# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ†Π΅Π»ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ° с запятой. ЀактичСски компилятор ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ всС лишниС ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρ‹ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π­Ρ‚ΠΈ свойства синтаксиса C# ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ свободу ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ (ΠΏΠ΅Ρ€Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΈΠ· части ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°) Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΏΠΎΠ»Π½Π΅ допустим Π² C#:

this.txtSign.Text = "Negative";

this.txtResult.Text = Math.Sqrt(-NumberInput) + " i";

Π₯отя ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ссли потрСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди смогли ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ кодирования. Visual Studio.NET Π±ΡƒΠ΄Π΅Ρ‚ Π² любом случаС автоматичСски Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Ρ‚Π°ΠΊΠΎΠΌ стилС.

Π‘ΠΊΠΎΠ±ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для группирования вмСстС инструкций Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π±Π»ΠΎΡ‡Π½Ρ‹Π΅ инструкции (ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° составныС инструкции). Π­Ρ‚Π° концСпция Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ сущСствуСт Π² VB. МоТно ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вмСстС Π»ΡŽΠ±Ρ‹Π΅ инструкции, помСщая Π²ΠΎΠΊΡ€ΡƒΠ³ Π½ΠΈΡ… скобки. Π“Ρ€ΡƒΠΏΠΏΠ° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ рассматриваСтся ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° блочная инструкция ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² любом мСстС Π² C#, Π³Π΄Π΅ оТидаСтся одиночная инструкция.

Π‘Π»ΠΎΡ‡Π½Ρ‹Π΅ инструкции часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² C#. НапримСр, Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠ΄Π΅ C# Π½Π΅ сущСствуСт явного указания Π½Π° ΠΊΠΎΠ½Π΅Ρ† ΠΌΠ΅Ρ‚ΠΎΠ΄Π° (C# ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚Π°ΠΌ, Π³Π΄Π΅ VB ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹). VB трСбуСтся инструкция End Sub Π² ΠΊΠΎΠ½Ρ†Π΅ любой ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ сколько ΡƒΠ³ΠΎΠ΄Π½ΠΎ инструкций. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ являСтся СдинствСнным способом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ извСстСн Π² VB для опрСдСлСния ΠΊΠΎΠ½Ρ†Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. C# дСйствуСт ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ. Π’ C# ΠΌΠ΅Ρ‚ΠΎΠ΄ формируСтся Π² точности ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ составной инструкции. Π’ связи с этим ΠΎΠ½ заканчиваСтся Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ„ΠΈΠ³ΡƒΡ€Π½ΠΎΠΉ скобкой, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ скобкС Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ дСйствиС часто встрСчаСтся Π² C#: Ρ‚Π°ΠΌ, Π³Π΄Π΅ Visual Basic ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово для ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΊΠΎΠ½Ρ†Π° Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, C# просто ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Π±Π»ΠΎΠΊ Π² ΡΠΎΡΡ‚Π°Π²Π½ΡƒΡŽ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ if Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π’ VB Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° инструкция EndIf для ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ окончания Π±Π»ΠΎΠΊΠ°. Π’ C# ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ if всСгда содСрТит Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ΄Π½Ρƒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ else Ρ‚ΠΎΠΆΠ΅ ΠΎΠ΄Π½Ρƒ. Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ инструкции Π² любом ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΊΠ°ΠΊ Π² случаС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΡˆΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ составная инструкция.

ИспользованиС Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… Π±ΡƒΠΊΠ²

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ синтаксиса, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова— if, else, int ΠΈ Ρ‚.Π΄. Π² ΠΊΠΎΠ΄Π΅ C# ΠΏΠΈΡˆΡƒΡ‚ΡΡ со строчной Π±ΡƒΠΊΠ²Ρ‹. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ VB язык C# Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΈ строчныС Π±ΡƒΠΊΠ²Ρ‹. Если Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ If вмСсто if, Ρ‚ΠΎ компилятор Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚ этот ΠΊΠΎΠ΄. Одним ΠΈΠ· прСимущСств использования Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΈ строчных Π±ΡƒΠΊΠ² являСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сущСствования Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ рСгистром символов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Name ΠΈ name. Вакая ситуация встрСтится Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ этого прилоТСния.

ИдСя ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΡ…ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ рСгистром символов, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ странной Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд. Но Ссли ΠΊ этому ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ свобода, которая благодаря этому достигаСтся Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова C# Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ строчными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ 

Π”Π°Π²Π°ΠΉΡ‚Π΅ сравним синтаксис, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉΡΡ Π² VB ΠΈ C# для объявлСния части ΠΊΠΎΠ΄Π°, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ событиС.

Π’ VB:

Private Sub cmdShowResults_Click()

Π° Π² C#:

private void OnClickShowResults(object sender, System.EventArgs e)

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