ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° присваивания. 
ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ссылочными ΠΈ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ЦСль ΠΈ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ ссылочного Ρ‚ΠΈΠΏΠ°. Π—Π΄Π΅ΡΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто сСмантика ссылочного присваивания. Π’ ΡΡ‚ΠΎΠΌ случаС значСниями источника ΠΈ Ρ†Π΅Π»ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, хранящиСся Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ («ΠΊΡƒΡ‡Π΅»). ΠŸΡ€ΠΈ ссылочном присваивании Ρ†Π΅Π»ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚ связь с Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° ΡΡΡ‹Π»Π°Π»Π°ΡΡŒ Π΄ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ, ΠΈ ΡΡ‚ановится ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, связанный с ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ссылочного присваивания двоякий. ΠžΠ±ΡŠΠ΅ΠΊΡ‚… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° присваивания. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ссылочными ΠΈ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

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

  • Β· ЦСль ΠΈ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π—Π΄Π΅ΡΡŒ наличСствуСт сСмантика Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ присваивания. Π’ ΡΡ‚ΠΎΠΌ случаС источник ΠΈ Ρ†Π΅Π»ΡŒ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ для хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ЗначСния источника Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ значСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ Ρ†Π΅Π»ΠΈ. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ ΠΈΡ†Π΅Π»ΡŒ послС этого ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ ΠΆΠΈΡ‚ΡŒ нСзависимо. Π£ Π½ΠΈΡ… своя ΠΏΠ°ΠΌΡΡ‚ΡŒ, хранящая послС присваивания ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ значСния.
  • Β· ЦСль ΠΈ ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ ссылочного Ρ‚ΠΈΠΏΠ°. Π—Π΄Π΅ΡΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто сСмантика ссылочного присваивания. Π’ ΡΡ‚ΠΎΠΌ случаС значСниями источника ΠΈ Ρ†Π΅Π»ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ссылки Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, хранящиСся Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ («ΠΊΡƒΡ‡Π΅»). ΠŸΡ€ΠΈ ссылочном присваивании Ρ†Π΅Π»ΡŒ Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚ связь с Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½Π° ΡΡΡ‹Π»Π°Π»Π°ΡΡŒ Π΄ΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ, ΠΈ ΡΡ‚ановится ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, связанный с ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ссылочного присваивания двоякий. ΠžΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΡΡ‹Π»Π°Π»Π°ΡΡŒ Ρ†Π΅Π»ΡŒ, тСряСт ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡΠ²ΠΎΠΈΡ… ссылок ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ висячим, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΡΡƒΠ΄ΡŒΠ±Ρƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ сборщик мусора. Π‘ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылался источник, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ, ΠΏΠΎ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΉ ΠΌΠ΅Ρ€Π΅, Π΄Π²Π΅ ссылки, рассматриваСмыС ΠΊΠ°ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. БсылочноС присваиваниС ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ псСвдонимов — ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Особо слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Ρ†Π΅Π»ΡŒ ΠΈ/ΠΈΠ»ΠΈ источник ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ void. Если Ρ‚Π°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ источник, Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ присваивания Ρ†Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ ΡΡΡ‹Π»Π°Π΅Ρ‚ся Π½ΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Если ΠΆΠ΅ Ρ†Π΅Π»ΡŒ ΠΈΠΌΠ΅Π»Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ void, Π° ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ — Π½Π΅Ρ‚, Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ присваивания Ρ€Π°Π½Π΅Π΅ «Π²ΠΈΡΡΡ‡Π°Ρ» Ρ†Π΅Π»ΡŒ становится ссылкой Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, связанный с ΠΈΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ.
  • Β· ЦСль ссылочного Ρ‚ΠΈΠΏΠ°, источник Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π’ ΡΡ‚ΠΎΠΌ случаС «Π½Π° Π»Π΅Ρ‚Ρƒ» Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ прСобразуСтся Π² ΡΡΡ‹Π»ΠΎΡ‡Π½Ρ‹ΠΉ. Как обСспСчиваСтся Π΄Π²ΠΎΠΉΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ сущСствования Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ ΠΈ ΡΡΡ‹Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° — ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°? ΠžΡ‚Π²Π΅Ρ‚ прост: Π·Π° ΡΡ‡Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ…, эффСктивно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ «ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ «(boxing) выполняСтся автоматичСски ΠΈ Π½Π΅ΡΠ²Π½ΠΎ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ ΠΊΠΎΠ½Ρ‚Сксту трСбуСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π° Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ. НапримСр, ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ WhoIsWho трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ any Π±Ρ‹Π» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Если фактичСский Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ являСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ Π°Π²Ρ‚оматичСски выполняСтся опСрация «ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ «. ΠŸΡ€ΠΈ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ создаСтся настоящий ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, хранящий Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. МоТно ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ достаточно часто. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° консольного Π²Ρ‹Π²ΠΎΠ΄Π° WriteLine класса Console, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π° ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ся Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.
  • Β· ЦСль Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, источник ссылочного Ρ‚ΠΈΠΏΠ°. Π’ ΡΡ‚ΠΎΠΌ случаС «Π½Π° Π»Π΅Ρ‚Ρƒ» ссылочный Ρ‚ΠΈΠΏ прСобразуСтся Π² Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΉ. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ «Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ «(unboxing) выполняСт ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, — ΠΎΠ½Π° «ΡΠ΄ΠΈΡ€Π°Π΅Ρ‚» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΡƒ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, опСрация «Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ «Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ «ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ «Π² ΡΡ‚Ρ€ΠΎΠ³ΠΎΠΌ смыслС этого слова. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ obj = x ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π΅Π½, Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ слСдом ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ x = obj ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΎΡˆΠΈΠ±ΠΊΠ΅. НСдостаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ совпадало ΠΏΠΎ Ρ‚ΠΈΠΏΡƒ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ присваиваСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. НСобходимо явно Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ «ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ» ΠΈ «Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ» (boxing ΠΈ unboxing).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π’ Π½Π°ΡˆΠ΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ дСмонстрируСтся ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Π΅ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ — ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ ΠΈ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Back ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ классу Object, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ фактичСского Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° происходит ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° значСния Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ. Π•Π³ΠΎ динамичСский Ρ‚ΠΈΠΏ опрСдСляСтся Ρ‚Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ памяти, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ссылка. Когда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ присваиваСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ, нСсмотря Π½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ распаковку, «ΡΠΎΠ΄Ρ€Π°Ρ‚ΡŒ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΡƒ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ нСпосрСдствСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Back ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π΅Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° BackTest ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Testing:

/// Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹ΠΉ Π΅ΠΌΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚.

/// ЀактичСский Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ.

/// ВозвращаСтся всСгда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса object.

/// ΠšΠ»ΠΈΠ΅Π½Ρ‚, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈ нСобходимости.

/// Π·Π°Π΄Π°Ρ‚ΡŒ явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

/// Допустим любой Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚.

object Back (object any).

{.

return (any);

}.

/// НСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² Ρ‚ΠΈΠΏ object.

/// Π―Π²Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°.

public void BackTest ().

{.

ux = (uint)Back (ux);

WhoIsWho («ux», ux);

s1 = (string)Back (s);

WhoIsWho («s1», s1);

x =(int)(uint)Back (ux);

WhoIsWho («x», x);

y = (float)(double)Back (11 + 5.55 + 5.5f);

WhoIsWho («y», y);

}.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ссли Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ Π² Π»Π΅Π²ΠΎΠΉ части ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π²Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ привСдСния. Π’Π½Π°Ρ‡Π°Π»Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Π·Π°Ρ‚Π΅ΠΌ привСсти Π΅Π³ΠΎ ΠΊ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π²ΡƒΡ… послСдних ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… присваивания. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ BackTest Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Main.

Π‘Π΅ΠΌΠ°Π½Ρ‚ΠΈΠΊΠ° присваивания. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ссылочными ΠΈ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.

Π’Ρ‹Π²ΠΎΠ΄ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² тСста BackTest.

Π”Π²Π΅ двойствСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ «ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ «ΠΈ «Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ «ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Скста, Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΊΠ°ΠΊ ссылочныС, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π½Π° Πllbest.ru.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ