Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏΡ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² пространствС ΠΈΠΌΠ΅Π½, Π±Π΅Π· указания ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½ этого Ρ‚ΠΈΠΏΠ°. Π’ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ всС Ρ‚ΠΈΠΏΡ‹ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

К Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ using ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°:

Оба ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ вмСстС для ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° статичСских Ρ‡Π»Π΅Π½ΠΎΠ² ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π²ΠΎ всСх исходных Ρ„Π°ΠΉΠ»Π°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ псСвдоним для пространства ΠΈΠΌΠ΅Π½ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ псСвдонимов using.

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ global ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ using alias.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово using Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² using, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² IDisposable, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ using см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ using.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using Π±Π΅Π· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° global ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° находится.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ:

Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка компилятора CS1529.

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ global

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° global ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ using ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠΎ всСм Ρ„Π°ΠΉΠ»Π°ΠΌ Π² компиляции (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚). Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° global using Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ появилась Π² C# 10. Бинтаксис:

Π³Π΄Π΅ fully-qualified-namespace β€” это ΠΏΠΎΠ»Π½ΠΎΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя пространства ΠΈΠΌΠ΅Π½, Π½Π° Ρ‚ΠΈΠΏΡ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π±Π΅Π· указания пространства ΠΈΠΌΠ΅Π½.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° global using ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π½Π°Ρ‡Π°Π»Π΅ любого Ρ„Π°ΠΉΠ»Π° исходного ΠΊΠΎΠ΄Π°. ВсС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ global using Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ:

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ global using ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² любой исходный Ρ„Π°ΠΉΠ». Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡ… хранят Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² global using Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, Π½ΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ….

Π­Ρ‚ΠΈ нСявныС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ global using Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС пространства ΠΈΠΌΠ΅Π½ для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using static ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ, доступ ΠΊ статичСским Ρ‡Π»Π΅Π½Π°ΠΌ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, Π½Π΅ указывая имя Ρ‚ΠΈΠΏΠ°. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using static Π±Ρ‹Π»Π° прСдставлСна Π² C# вСрсии 6. Бинтаксис:

β€” это имя Ρ‚ΠΈΠΏΠ°, Π½Π° статичСскиС Ρ‡Π»Π΅Π½Ρ‹ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ, Π½Π΅ указывая имя Ρ‚ΠΈΠΏΠ°. Если ΠΏΠΎΠ»Π½ΠΎΠ΅ Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠ΅ имя (ΠΏΠΎΠ»Π½ΠΎΠ΅ имя пространства ΠΈΠΌΠ΅Π½ вмСстС с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚ΠΈΠΏΠ°) Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, C# создаСт ΠΎΡˆΠΈΠ±ΠΊΡƒ компилятора CS0246: «Π’ΠΈΠΏ ΠΈΠ»ΠΈ пространство ΠΈΠΌΠ΅Π½ ‘type/namespace’ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ (отсутствуСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using ΠΈΠ»ΠΈ ссылка сборки)».

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using static примСняСтся ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ статичСскиС Ρ‡Π»Π΅Π½Ρ‹ (ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹), Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΈ этом Ρƒ Π½Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‡Π»Π΅Π½Ρ‹ экзСмпляров. ΠŸΡ€ΠΈ этом для Π²Ρ‹Π·ΠΎΠ²Π° Ρ‡Π»Π΅Π½ΠΎΠ² экзСмпляров ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ экзСмпляр Ρ‚ΠΈΠΏΠ°.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ статичСским Ρ‡Π»Π΅Π½Π°ΠΌ Ρ‚ΠΈΠΏΠ° Π±Π΅Π· нСобходимости ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ доступа с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ°:

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ статичСского Ρ‡Π»Π΅Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя Ρ‚ΠΈΠΏΠ° ΠΈ имя Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‡Π»Π΅Π½Π°. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ° для Π²Ρ‹Π·ΠΎΠ²Π° относящихся ΠΊ Π½Π΅ΠΌΡƒ элСмСнтов ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ слишком Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ ΠΈ слоТным. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ класса Circle ссылаСтся Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹ класса Math.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ явно ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° класс Math ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ссылкС Π½Π° Ρ‡Π»Π΅Π½ Π½Π΅ трСбуСтся, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using static создаСт Π±ΠΎΠ»Π΅Π΅ понятный ΠΊΠΎΠ΄:

using static Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Ρ‚ΠΈΠΏΠ΅, доступными для поиска ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ для Π½Π΅ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ссылки Π² ΠΊΠΎΠ΄Π΅.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ using static Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Π±Π»ΠΎΠΊΠ΅ компиляции ΠΈΠ»ΠΈ пространствС ΠΈΠΌΠ΅Π½, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² этих Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² соотвСтствуСт ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ языка C#.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using static ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ доступ ΠΊ статичСским Ρ‡Π»Π΅Π½Π°ΠΌ классов Console, Math ΠΈ String ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ, Π½Π΅ указывая имя Ρ‚ΠΈΠΏΠ°.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using static ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΈΠΏΡƒ Double. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ TryParse(String, Double), Π½Π΅ указывая имя Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈ этом, ΠΊΠΎΠ³Π΄Π° TryParse ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±Π΅Π· указания ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΠ΄ становится ΠΌΠ΅Π½Π΅Π΅ понятным, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ появляСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using static ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ числового Ρ‚ΠΈΠΏΠ° TryParse вызываСтся.

ПсСвдоним using

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ псСвдоним using для пространства ΠΈΠΌΠ΅Π½.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ using ΠΈ псСвдоним using для класса.

ИспользованиС пространства ΠΈΠΌΠ΅Π½ My ΠΈΠ· Visual Basic

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± использовании пространства ΠΈΠΌΠ΅Π½ MyServices ΠΈΠ· Visual Basic см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с использованиСм пространства ΠΈΠΌΠ΅Π½ My.

НСобходимо Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ссылку Π½Π° сборку Microsoft.VisualBasic.dll Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. НСкоторыС классы ΠΈΠ· пространства ΠΈΠΌΠ΅Π½ MyServices нСльзя Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· прилоТСния C#, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, нСсовмСстимый класс FileSystemProxy. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π² этом случаС вмСсто Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ· состава FileSystem (Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ VisualBasic.dll). НапримСр, Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

БпСцификация языка C#

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ БпСцификация языка C#. БпСцификация языка являСтся ΠΏΡ€Π΅Π΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ источником ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ синтаксисС ΠΈ использовании языка C#.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± использовании ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° global using см. Π² спСцификации Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ global using β€” C# 10.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

6.12 – ОбъявлСния using ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using

Π’Ρ‹, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π²ΠΈΠ΄Π΅Π»ΠΈ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ°Ρ… ΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹Ρ… руководствах:

НСкоторыС старыС компиляторы Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Если Π²Ρ‹ это Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π±Π΅Π³ΠΈΡ‚Π΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ваш ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ, руководство ΠΈΠ»ΠΈ компилятор устарСли. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ выясним, ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠΊ истории

ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠ΅ΠΌΡΡ Π² сСгодняшний дСнь – Ссли Π²Ρ‹ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π½Π°Π±ΠΈΡ€Π°Π½ΠΈΠ΅ std:: ΠΏΠ΅Ρ€Π΅Π΄ всСм, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅ΠΉΡΡ Ρ€ΡƒΡ‚ΠΈΠ½ΠΎΠΉ, Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ вашСго ΠΊΠΎΠ΄Π°.

Но сначала Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π΄Π²Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°.

ΠŸΠΎΠ»Π½Ρ‹Π΅ ΠΈ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°

Имя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌ.

ПолноС имя – это имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. Π§Π°Ρ‰Π΅ всСго ΠΈΠΌΠ΅Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ пространством ΠΈΠΌΠ΅Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ области видимости ( :: ). НапримСр:

Для ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ

НСполноС имя – это имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ области видимости. НапримСр, cout ΠΈ x ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости.

ОбъявлСния using

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using

Π’ΠΎΡ‚ снова наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Hello World с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ using Π² строкС 5:

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using – это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ прСдоставлСно для Π±Π°Π· старого ΠΊΠΎΠ΄Π° Π΄ΠΎ пространства ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовали Π½Π΅ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ (Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ рискованно), ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ using (Ρ‚.Π΅. using namespace std; ) Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΈ всС ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² пространство ΠΈΠΌΠ΅Π½ std всё Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ using

Однако для соврСмСнного ΠΊΠΎΠ΄Π° C++ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using Π΄Π°ΡŽΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π³ΠΎΠ΄Ρ‹ (экономия Π½Π° Π²Π²ΠΎΠ΄Π΅ тСкста) ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с риском.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ всС ΠΈΠΌΠ΅Π½Π° ΠΈΠ· пространства ΠΈΠΌΠ΅Π½ (ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ мноТСство ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ), Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ возникновСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ возрастаСт (особСнно, Ссли Π²Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ пространство ΠΈΠΌΠ΅Π½ std ).

Для наглядности рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ:

Π’ΠΎΡ‚ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ²Π°Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠΈΠ»ΠΈ использовалось объявлСниС using вмСсто Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using :

Ρ‚ΠΎΠ³Π΄Π° наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΈΠΌΠ΅Π»Π° Π±Ρ‹ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

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

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

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

Когда компилятор встрСчаСт Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, с ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ этот Π²Ρ‹Π·ΠΎΠ². ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Ρ‚ Ρ‚Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ прСобразования Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π° Π½Π΅ Ρ‚Ρƒ, которая Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ прСобразования Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π»ΠΈΡ‚Π΅Ρ€Π°Π» 0 ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ цСлочислСнному Ρ‚ΠΈΠΏΡƒ, C++ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Ρ‚ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ someFcn(0) с Π½Π΅Π΄Π°Π²Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ someFcn(int) (Π±Π΅Π· ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ), Π° Π½Π΅ с someFcn(double) (трСбуСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· int Π² double). Π­Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π­Ρ‚ΠΎΠ³ΠΎ Π±Ρ‹ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Ссли Π±Ρ‹ ΠΌΡ‹ использовали объявлСниС using ΠΈΠ»ΠΈ явный ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ области видимости.

ΠžΠ±Π»Π°ΡΡ‚ΡŒ видимости объявлСний ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² using

Если объявлСниС using ΠΈΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π±Π»ΠΎΠΊΠ΅, ΠΈΠΌΠ΅Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² этом Π±Π»ΠΎΠΊΠ΅ (ΠΎΠ½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ области видимости Π±Π»ΠΎΠΊΠ°). Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сниТаСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ возникновСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ Π²Π½ΡƒΡ‚Ρ€ΠΈ этого Π±Π»ΠΎΠΊΠ°.

Если объявлСниС using ΠΈΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² глобальном пространствС ΠΈΠΌΠ΅Π½, ΠΈΠΌΠ΅Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊΠΎ всСму ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ (ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Ρ„Π°ΠΉΠ»Π°).

ΠžΡ‚ΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Π° инструкции using

ПослС объявлСния инструкции using Π΅Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ инструкциСй using Π² Ρ‚ΠΎΠΉ области видимости, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° Π±Ρ‹Π»Π° объявлСна.

Π›ΡƒΡ‡ΡˆΠ΅Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, – это Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ с самого Π½Π°Ρ‡Π°Π»Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости инструкции using с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€Π°Π²ΠΈΠ» области видимости Π±Π»ΠΎΠΊΠ°.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, всСй этой Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ области видимости ( :: ).

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ для инструкций using

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

ОбъявлСния using ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ бСзопасными для использования Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π»ΠΎΠΊΠΎΠ². ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΡŒΡ‚Π΅ ΠΈΡ… использованиС Π² глобальном пространствС ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² исходного ΠΊΠΎΠ΄Π° ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Π² глобальном пространствС ΠΈΠΌΠ΅Π½ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

Π›ΡƒΡ‡ΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ using (справочник ΠΏΠΎ C#)

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ синтаксис, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² IDisposable. Начиная с C# 8.0 инструкция using Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² IAsyncDisposable.

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

Начиная с вСрсии C# 8.0, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ синтаксис для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° using Π±Π΅Π· использования Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобок:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

File ΠΈ Font ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ управляСмых Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ ΠΊ нСуправляСмым рСсурсам (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС это ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ контСксты устройств). Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ нСуправляСмых рСсурсов ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚. ВсС эти Ρ‚ΠΈΠΏΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс IDisposable ΠΈΠ»ΠΈ интСрфСйс IAsyncDisposable.

Новый синтаксис инструкции using прСобразуСтся Π² ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ ΠΊΠΎΠ΄. Π‘Π»ΠΎΠΊ try открываСтся Ρ‚Π°ΠΌ, Π³Π΄Π΅ объявлСна пСрСмСнная. Π‘Π»ΠΎΠΊ finally добавляСтся Π² ΠΊΠΎΠ½Π΅Ρ† ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

Π’ ΠΎΠ΄Π½ΠΎΠΉ инструкции using ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ сразу нСсколько экзСмпляров Ρ‚ΠΈΠΏΠ°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСявно Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ( var ) ΠΏΡ€ΠΈ объявлСнии Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΉ инструкции:

НСсколько объявлСний ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ синтаксиса, прСдставлСнного Π² C# 8, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± ΡƒΡ‚ΠΈΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² IDisposable см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ИспользованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… IDisposable.

БпСцификация языка C#

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ using Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ языка C#. БпСцификация языка являСтся ΠΏΡ€Π΅Π΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ источником ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ синтаксисС ΠΈ использовании языка C#.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ using Π² C#: ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c

Но Ρ‡Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСуправляСмыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, сСтСвыС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π±ΡƒΡ„Π΅Ρ€Ρ‹ Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈΠ»ΠΈ индСксов ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅)? Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΈΡ… ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π·Π° собой.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ нСуправляСмых ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² C#

Поясним всю эту Π·Π°ΡƒΠΌΠ½ΡƒΡŽ Ρ‚Π΅ΠΎΡ€ΠΈΡŽ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΆΠΈΠ²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅: допустим, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ рСсурсу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ послС использования.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

Казалось Π±Ρ‹, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ процСсс. Однако Ссли Ρ„Π°ΠΉΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ происходит ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ Ρ€ΠΈΠ΄Π΅Ρ€Π°, Ρ‚ΠΎ рСсурс Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° сборщик мусора Π½Π΅ избавится ΠΎΡ‚ Π½Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ занята ΠΏΠΎΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ.

ИспользованиС using с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π½Π° структурах

ΠŸΡ€ΠΈ использовании конструкции using Π² C# ΠΌΠ΅Ρ‚ΠΎΠ΄ Dispose вызываСтся автоматичСски, Π° Π²Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ прСвращаСтся Π² трСхстрочный:

Using: Π²Π°ΠΆΠ½Ρ‹Π΅ подробности

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования using Π² C#:

Π˜Ρ‚ΠΎΠ³ ΠΏΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сказанного:

Для закрСплСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° Π΄Π°Π½Π½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ (namespace) β€” это способ, благодаря ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ .NET ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½ ΠΌΠ΅ΠΆΠ΄Ρƒ классами.

Бвойства пространства ΠΈΠΌΠ΅Π½:

using

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using β€” ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ пространство ΠΈΠΌΠ΅Π½, избавляя ΠΎΡ‚ нСобходимости ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈΠΌΠ΅Π½ стСрСотипов.

Использовав using System; Нам большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ быстрСС ΠΈ ΠΊΠΎΡ€ΠΎΡ‡Π΅.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ псСвдонимы пространства ΠΈΠΌΠ΅Π½ ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ°. Π­Ρ‚ΠΎ называСтся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° using alias

Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ алиас?

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ алиаса Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия:
β€’ Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² References Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сборки.
β€’ ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ References.
β€’ ΠŸΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ сборкС, откроСтся контСкстноС
мСню, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Properties.
β€’ Π’ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ свойств, Π² свойствС Aliases, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
global на своС названиС

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ прСпроцСссора C#:

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

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #region позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ структурирования Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΊΠΎΠ΄Π° Visual Studio.

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ using system Π² c

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ большим Ρ„Π°ΠΉΠ»ΠΎΠΌ Π³Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ строк ΠΊΠΎΠ΄Π°, позволяСт Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π°Π΄ Ρ‚Π΅ΠΌ участком ΠΊΠΎΠ΄Π°, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° #if #endif

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

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