ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΡΡΡΠΊΡΡΡΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°
BestProg
Π‘ΡΡΡΠΊΡΡΡΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΡΠΊΡΡΡ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ . Π‘Π²ΠΎΠΉΡΡΠ²Π° Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠΈΡΠΊ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ :
1. ΠΡΠΈΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΡ:
β
2. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Ρ (Π΄Π°Π½Π½ΡΠ΅) ΡΡΡΡΠΊΡΡΡΡ? ΠΡΠΈΠΌΠ΅Ρ
ΠΠ»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ Π΄Π°Π½Π½ΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ.
ΠΡΠ·ΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° (ΠΎΠ±ΡΠ΅ΠΊΡΠ°) ΡΡΡΡΠΊΡΡΡΡ.
β
3. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ?
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π½Π΅Π»ΡΠ·Ρ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅. ΠΠ»Ρ Π²ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π½Π΅Ρ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
β
4. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ?
Π ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ Π½Π΅Π»ΡΠ·Ρ.
β
5. ΠΠ°ΠΊ Π² ΡΡΡΡΠΊΡΡΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ? ΠΡΠΈΠΌΠ΅Ρ
ΠΠ°Π»Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΡΠΎΠ±ΡΡΠΈΡ
β
6. ΠΡΠΈΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅ΠΉ ΡΠ²ΠΎΠΉΡΡΠ²Π°
ΠΡΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΡΠΊΡΡΡΠ°, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ°Ρ ΡΠΎΡΠΊΡ Π½Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ. Π‘ΡΡΡΠΊΡΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ:
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Point ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΠ°.
BestProg
Π‘ΡΡΡΠΊΡΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ . ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠΈΡΠΊ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ :
1. ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ
Π ΡΡΡΡΠΊΡΡΡΠ°Ρ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΠΊΠ»Π°ΡΡΠ°Ρ . Π Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ Π² ΠΊΠ»Π°ΡΡΠ°Ρ , Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ.
2. ΠΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ? ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΊ ΡΡΡΡΠΊΡΡΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ
ΡΠΎ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΡΠΊΡΡΡΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ. ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΄Π°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
3. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ . Π‘ΡΡΡΠΊΡΡΡΠ° SquareEquition β ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ
Π ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ:
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΄Π°Π»Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
4. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ . ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Π‘ΡΡΡΠΊΡΡΡΡ ΠΊΠ°ΠΊ ΠΈ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ. ΠΠ»Ρ ΡΡΡΡΠΊΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ²:
Π ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΡ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π² Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ°Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΏΠ°ΠΌΡΡΠΈ, Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ Ρ.ΠΏ.
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠ° Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ .
ΠΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π΄Π²Π΅ ΡΡΡΡΠΊΡΡΡΡ:
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠΈΠΏΠ° Point ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅:
Π‘ΡΡΡΠΊΡΡΡΠ° ΡΠΈΠΏΠ° ArrayPoint ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ:
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ C++ Π΄Π»Ρ ΡΠ°Π±Π»ΠΎΠ½Π° Console Application.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ (Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° C#)
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΠ°, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠ»Π°ΡΡ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ², ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ Π·Π°Π΄Π°Π²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΡΠΈΡΠ»ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ ΠΈ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π°Ρ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ².
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
ΠΡΠ»ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ°, C# ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π·Π°Π΄Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ-ΡΠ»Π΅Π½Π°ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅ ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² C#. ΠΡΠ»ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΡΡΡΡΠΊΡΡΡΡ, C# Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠ²Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ².
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. Π ΠΊΠ»Π°ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΡΠΈΠΏΠ°. Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ C# ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅ ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² C#.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ.
ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅Π»Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² (Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² C#)
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΠ»Π΅Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°, Π΅ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° class ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ new. ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° static ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°.
ΠΠ»Ρ ΡΡΠ½ΠΎΡΡΠΈ ΡΡΠΎΡ ΠΊΠ»Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΡΠΊΡΡΡΡΠ΅ ΠΏΠΎΠ»Ρ. ΠΡΠΊΡΡΡΡΠ΅ ΠΏΠΎΠ»Ρ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π»ΡΠ±ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ ΠΈ Π½Π΅ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π§Π»Π΅Π½Ρ Π΄Π°Π½Π½ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΡΠΌΠΈ, Π° Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Coords Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ»ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ:
ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, int ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 0. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ² C#. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Coords ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ»Π΅Π½Ρ Π΄Π°Π½Π½ΡΡ Ρ Π½ΡΠ»Π΅Π²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ° ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ. ΠΠΎΠ»Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΡΠΌ. Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 1; ΠΏΡΠΈΠΌΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΌ. Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 2.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠ°:
ΠΡΠΈΠΌΠ΅Ρ 1
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π° Π²ΡΠΎΡΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
ΠΡΠΈΠΌΠ΅Ρ 2
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ Person Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π° Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ 3
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π°Ρ virtual, override ΠΈ base.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡΡ (Π·Π½Π°ΡΠΈΠΌΡΠ΅ ΡΠΈΠΏΡ)
internal struct Point
public Int32 m_x, m_y;
internal sealed class Rectangle
public Point m_topLeft, m_bottomRight;
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Rectangle, Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new, ΡΠΊΠ°Π·Π°Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Π‘#. ΠΠ°ΠΌΡΡΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½Π°Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Rectangle, Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΌΠ΅ΡΡΠΎ Π΄Π»Ρ Π΄Π²ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Point. ΠΠ· ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ CLR Π½Π΅ ΠΏΡΡΠ°Π΅ΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎΡΡ Π²Π½ΡΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠΎ, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π²ΡΡΠ΅, ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π½ΡΠ»Π΅Π²ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡΡΡΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
CLR Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π΄Π»Ρ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ², Π½ΠΎ ΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π»ΠΈΡΡ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΊΠΎΠ΄Π°, ΡΠ²Π½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Rectangle:
internal struct Point
public Int32 m_x, m_y;
public Point(Int32 x, Int32 y)
internal sealed class Rectangle
public Point m_topLeft, m_bottomRight;
/* Π Π‘# ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ°
Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΏΠΎΠ»Π΅ΠΉ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°*/
m_topleft = new Point(1, 2);
m_bottomRight = new Point(100, 200);
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ Π΅Π³ΠΎ ΡΠ²Π½ΠΎ. Π’Π°ΠΊ ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Rectangle Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π» Π΅Π³ΠΎ ΠΏΠΎΠ»Ρ mtopLeft ΠΈ mbottomRight Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Point ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ new, ΠΏΠΎΠ»Ρ m_Ρ ΠΈ m_Ρ Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΡΡΠΊΡΡΡ Point Π±ΡΠ΄ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ 0.
ΠΡΠ»ΠΈ Π·Π½Π°ΡΠΈΠΌΡΠΉ ΡΠΈΠΏ Point ΡΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, ΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ. ΠΠΎ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠ΄:
internal struct Point
public Int32 m_x, m_y;
internal sealed class Rectangle
public Point m_topLeft, m_bottomRight;
Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΊΠ°ΠΆΠΈΡΠ΅: ΠΊΠ°ΠΊΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ β 0 ΠΈΠ»ΠΈ 5 β Π±ΡΠ΄ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΏΠΎΠ»Ρ m_Ρ ΠΈ m_y, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ Point (m_topLeft ΠΈ m_bottomRight)? (ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°Ρ: Π²ΠΎΠΏΡΠΎΡ Ρ ΠΏΠΎΠ΄Π²ΠΎΡ ΠΎΠΌ.)
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Ρ ΠΎΠΏΡΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° C++) Π±ΡΠ΄ΡΡ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘# ΠΏΠΎΠΌΠ΅ΡΡΠΈΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Rectangle ΠΊΠΎΠ΄, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΡΡΡΠΊΡΡΡΡ Point ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π΄Π»Ρ Π΄Π²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Rectangle. ΠΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘# Π½Π΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Ρ Π½Π΅Π³ΠΎ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
Π‘ ΡΡΠ΅ΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΠ»Ρ m_x ΠΈ m_y ΠΎΠ±Π΅ΠΈΡ ΡΡΡΡΠΊΡΡΡ Point ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° Rectangle Π² ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΊΠΎΠ΄Π΅ Π±ΡΠ΄ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Π½ΡΠ»Π΅Π²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π΅Ρ ΡΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Point.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊΠ°ΠΊ Ρ ΡΠΊΠ°Π·Π°Π», ΠΌΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ Π²ΠΎΠΏΡΠΎΡ Π±ΡΠ» Ρ ΠΏΠΎΠ΄Π²ΠΎΡ ΠΎΠΌ. ΠΠΎΠ΄Π²ΠΎΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π‘# Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘# Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅: Β«error CSO568: Structs cannot contain explicit parameterless constructorsΒ» (Β«ΠΎΡΠΈΠ±ΠΊΠ° CSO568: ΡΡΡΡΠΊΡΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²Β»).
| ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π² ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π½ΠΎΡΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0 ΠΈΠ»ΠΈ null, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠΈΠΌΡΠΉ ΡΠΈΠΏ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ Π² ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π³Π΄Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΡΠΎ ΡΡΠ΅ΠΊΠΎΠΌ, Π±ΡΠ΄ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ 0 ΠΈΠ»ΠΈ null! Π§ΡΠΎΠ±Ρ ΠΊΠΎΠ΄ Π±ΡΠ» Π²Π΅ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΡΠΌ, ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠΎ ΡΡΠ΅ΠΊΠΎΠΌ, Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π² Π½Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΊΠΎΠ΄ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ΄Π° Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΡΠΈΡΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. Π‘# ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠ΅ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΠΎΠ»Ρ Π»ΡΠ±ΡΡ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ², ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ ΡΠΎ ΡΡΠ΅ΠΊΠΎΠΌ, ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π½ΡΠ»ΡΡΡΡΡ ΠΈΠ»ΠΈ Π² Π½ΠΈΡ Ρ ΠΎΡΡ Π±Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ. ΠΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π½ΡΠ»Π΅Π²ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈ Π²ΡΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ. |
Π‘# ΠΏΡΠ΅Π΄Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ², ΡΡΠΎΠ±Ρ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π² Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π΅Π»ΡΠ·Ρ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. Π ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π²ΡΠ΅Π³Π΄Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ Π½ΡΠ»Π΅Π²ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡΡΡΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
Π₯ΠΎΡΡ Π‘# Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ² Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΡΠΎ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ CLR. Π’Π°ΠΊ ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²Π°Ρ Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΡΡ ΡΠΊΡΡΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π²ΡΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° IL) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π·Π½Π°ΡΠΈΠΌΡΠΉ ΡΠΈΠΏ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π‘# Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ² Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅: Β«error CSO573: ‘SomeValType.m_x’: cannot have instance field initializers in structsΒ» (Π½Π΅Π»ΡΠ·Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ ).
internal struct SomeValType
// Π Π·Π½Π°ΡΠΈΠΌΠΎΠΌ ΡΠΈΠΏΠ΅ Π½Π΅Π»ΡΠ·Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ
private Int32 m_x = 5;
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΡΠ΅Π±ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π² Π½Π΅Π³ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄Π»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠΏ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎΠ»Ρ:
internal struct SomeValType
private Int32 m_x, m_y;
// C# Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ Ρ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ,
public SomeValType(Int32 x)
// ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΏΠΎΠ»Π΅ m_Ρ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ
ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘# Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅: Β«error CSO171: Field ‘SomeVallype.m_y’ must be fully assigned before control leaves the constructorΒ» (ΠΏΠΎΠ»Π΅ ‘SomeValType.m_y’ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π΄ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ). Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π² ΠΏΠΎΠ»Π΅ m_y Π½Π°Π΄ΠΎ Π·Π°Π½Π΅ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ 0) Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΈΠΏΠΎΠ²
ΠΠΎΠΌΠΈΠΌΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ², CLR ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΈΠΏΠΎΠ² (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΡ ΡΠΈΠΏΠΎΠ²). ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈ ΠΊ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°ΠΌ (Ρ ΠΎΡΡ Π‘# ΡΡΠΎΠ³ΠΎ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ), ΡΡΡΠ»ΠΎΡΠ½ΡΠΌ ΠΈ Π·Π½Π°ΡΠΈΠΌΡΠΌ ΡΠΈΠΏΠ°ΠΌ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΡΠΈΠΏΠ°, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΈΠΏΠΎΠ² ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΈΠΏΠ°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ ΡΠΈΠΏΠ° Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. Π£ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΡΠΈΠΏΠ° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠΎΡ ΠΊΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΡΡΡΠ»ΠΎΡΠ½ΡΠ΅ ΠΈ Π·Π½Π°ΡΠΈΠΌΡΠ΅ ΡΠΈΠΏΡ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°ΠΌΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π° Π‘#:
internal sealed class SomeRefType
// ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΌΡ ΡΠΈΠΏΡ SomeRefType
internal struct SomeValType
/* Π‘# Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π΄Π»Ρ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠΎΠ²
ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²*/
// ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ Π·Π½Π°ΡΠΈΠΌΠΎΠΌΡ ΡΠΈΠΏΡ SomeValType
ΠΠ°ΠΌΠ΅ΡΡΡΠ΅: ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΈΠΏΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ², Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΈΠΏΠ° Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΡΠΌΠΈ (Π‘# Π΄Π΅Π»Π°Π΅Ρ ΠΈΡ Π·Π°ΠΊΡΡΡΡΠΌΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ). ΠΠΎ, Π΅ΡΠ»ΠΈ ΡΠ²Π½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° ΠΊΠ°ΠΊ Π·Π°ΠΊΡΡΡΡΠΉ (ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ-ΡΠΎ ΠΈΠ½Π°ΡΠ΅), ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘# Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΡΠΈΠΏΠ° Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΡΡΡΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π½Π΅ ΡΠΌΠΎΠ³ ΠΈΡ Π²ΡΠ·Π²Π°ΡΡ, β Π½Π°ΠΏΡΠΎΡΠΈΠ², CLR Π²ΡΠ΅Π³Π΄Π° ΡΠΏΠΎΡΠΎΠ±Π½Π° Π²ΡΠ·Π²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ°.
ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π₯ΠΎΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² Π·Π½Π°ΡΠΈΠΌΠΎΠΌ ΡΠΈΠΏΠ΅, ΡΡΠΎΠ³ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ½ΠΎΠ³Π΄Π° CLR Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
internal struct SomeValType
Console.WriteLine(“This never gets displayed”);
public sealed class Program
public static void Main()
SomeValType[] a = new SomeValType[10];
Console.WriteLine(a[O].m_x); // ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ 123
ΠΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΈΠΏΠ°. ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠΏΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠΈ ΠΈΠ· ΠΊΠΎΠ΄Π°. ΠΡΠ»ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΡΠΈΠΏΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π±ΡΠ» Π»ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° Π² Π΄Π°Π½Π½ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅ AppDomain. ΠΡΠ»ΠΈ Π½Π΅Ρ, JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΎΠ·Π΄Π°Π΅Ρ Π² IL-ΠΊΠΎΠ΄Π΅ Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΈΠΏΠ°. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΊΠΎΠ΄ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ, JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΈΠΏΠ° Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Β«Π·Π½Π°Π΅ΡΒ», ΡΡΠΎ ΡΠΈΠΏ ΡΠΆΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½. (ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Β«ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΡΠΈΠΏΠ°Β».)
| ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ CLR Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅ AppDomain, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΠΎΠΊΠ°ΠΌ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅Ρ Singleton-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ°. |
ΠΠ°Π»Π΅Π΅, ΠΏΠΎΡΠ»Π΅ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°, ΠΈ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄ΠΎΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΡΠ½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄. CLR ΡΡΡΠ΅ΠΌΠΈΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅ AppDomain. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΈΠΏΠ° Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ°, ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ, Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΊΠΎΠ΄ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°. ΠΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, Β«ΠΏΡΠΎΡΠ½ΡΡΡΡΒ» ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡ, Π±ΡΠ» Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. ΠΠ½ΠΈ Π½Π΅ ΡΡΠ°Π½ΡΡ ΡΠ½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄, Π° ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² CLR Π±ΡΠ΄Π΅Ρ Β«Π² ΠΊΡΡΡΠ΅Β», ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΡΡ, ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡ Π΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π½Π΅ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, CLR ΡΡΠΈΡΠ°Π΅Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π½Π΅ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌ. ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ ΠΏΠΎΠ»Ρ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ System.TypelnitializationException.
ΠΠΎΠ΄ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΈΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΡΠΌ ΡΠΈΠΏΠ°, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ . ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ½ΡΡ ΠΏΠΎΠ»Π΅ΠΉ, Π‘# ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ ΡΠΈΠΏΠ°:
internal sealed class SomeType
private static Int32 s_x = 5;
| ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ Π‘# Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π² Π·Π½Π°ΡΠΈΠΌΡΡ ΡΠΈΠΏΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»Π΅ΠΉ, Π½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΡΡΠΎ Π² ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΠΎΠ»ΡΡ . ΠΠ½Π°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΠΈΠΏ Ρ class Π½Π° struct, ΠΊΠΎΠ΄ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠ°ΠΊ Π·Π°Π΄ΡΠΌΠ°Π½ΠΎ. |
ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° SomeType. ΠΠ½Π°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π±ΡΠ» ΠΈΡΡ ΠΎΠ΄Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠ°ΠΊ:
internal sealed class SomeType
private static Int32 s_x;
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΡΠΎΡ Π²ΡΠ·ΠΎΠ² Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»Π΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΡΠΈΠΏΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠΈΠΏΠΎΠΌ ΠΈ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ Π½Π΅Π³ΠΎ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π ΡΠ΄ ΡΠ·ΡΠΊΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Java, ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠΈΠΏΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π²ΡΠ΅Ρ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ, ΡΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ²ΠΎΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ. CLR Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄ RunClassConstructor, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉΡΠΈΠΏΠΎΠΌ SystemRuntime.CompilerServicesRuntimeHelpers. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΡΡΠ΅Π±ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΡ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΡΠΈΠΏΠ° ΠΊΠΎΠ΄, Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ΅Ρ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ². ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° RunClassConstructor Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΈΠΏΠ° CLR ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π±ΡΠ» Π»ΠΈ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ ΡΠ°Π½Π΅Π΅, ΠΈ Π΅ΡΠ»ΠΈ Π΄Π°, ΡΠΎ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ ΡΠ½ΠΎΠ²Π°.
Π Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠ΄:
internal sealed class SomeType
private static Int32 s_x = 5;
ΠΠ΄Π΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘# Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»Π΅ s_x Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 5, Π·Π°ΡΠ΅ΠΌ β Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 10. ΠΠ½Π°ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ IL-ΠΊΠΎΠ΄Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π‘# ΡΠ½Π°ΡΠ°Π»Π° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ, Π·Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ²Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉΡΡ Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°-ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΡΠΈΠΏΠ°.
ΠΠΎΠ½ΡΠ»ΠΈΠΊΡΡ Π² ΡΠ΅ΠΌΠ΅ΠΉΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. ΠΠ°ΠΊ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ? Π Π΅Π΄ΠΊΠΈΠΉ Π±ΡΠ°ΠΊ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π±Π΅Π· ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½Π½ΠΎΡΡΠΈ. Π§Π΅ΡΠ΅Π· ΡΡΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ Π²ΡΠ΅.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ Π²Π·Π°ΠΈΠΌΠ½ΠΎΡΡΠΈ? Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΏΡΡΡΠΈΠΌΡΡ Ρ Π½Π΅Π±Π΅Ρ Π½Π° Π·Π΅ΠΌΠ»Ρ. ΠΡΠΈΠ·Π΅ΠΌΠ»ΠΈΠ»ΠΈΡΡ? ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π·Π³ΠΎΠ²ΠΎΡ.
Π§ΡΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΆΠ΅Π»Π°Π½ΠΈΠΉ? Π‘ΡΠΎΠΏΡΠΎΡΠ΅Π½ΡΠ½Π°Ρ, Π½Π΅ΠΏΠΎΠΊΠΎΠ»Π΅Π±ΠΈΠΌΠ°Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ.
Π§Π’Π Π’ΠΠΠΠ Π£ΠΠΠ ΠΠΠΠΠ ΠΠΠΠΠΠΠΠΠ Π ΠΠΠΠΠΠ§ΠΠΠ‘Π’ΠΠ«Π₯ ΠΠ’ΠΠΠ¨ΠΠΠΠ―Π₯? ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ.
ΠΠ΅ Π½Π°ΡΠ»ΠΈ ΡΠΎ, ΡΡΠΎ ΠΈΡΠΊΠ°Π»ΠΈ? ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π³ΡΠ³Π» Π½Π° ΡΠ°ΠΉΡΠ΅:




