рд╣реБрдб рдХреЗ рддрд╣рдд рд╕реА # рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕рд░реНрд╕: рдбреЙрд╡ рдЬреЛрдиреНрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ

рд╢реБрдн рджрд┐рдиред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЕрдиреБрдХреНрд░рдордХреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВред рдЖрдЗрдП рдЗрди рдЗрдВрдбреЗрдХреНрд╕рд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдбрд╛рдВрддрд░рдХ рднрд╛рд╖рд╛ рдХреЛрдб рдФрд░ рдЗрд╕рдХреА рдЧрддрд┐ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВред рдореИрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдирд┐рд╖реНрдХрд░реНрд╖ рднреА рдкреЗрд╢ рдХрд░реВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреА рд╡рд┐рд╢реЗрд╖ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ рдХрд┐ рдЧрддрд┐ рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдЫрд╡рд┐

рдореИрдЯреНрд░рд┐рдХреНрд╕


рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдХреЛрдб 64 рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛: рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛, рд╡рд┐рд▓рдп рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛, рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рди, рд╡рд┐рд▓рдВрдм, рдереНрд░реВрдкреБрдЯ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдореИрдВрдиреЗ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдХреЛрдИ рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рджреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдерд┐рддрд┐ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЖрдк рдХреИрд╕реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреИрд╢ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдиреАрдЪреЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ, рдХреЗрд╡рд▓ рд╡реИрдЪрд╛рд░рд┐рдХ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЦреЛрджреЗ рдмрд┐рдирд╛ рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ рд╣реИред рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭ рдХреЗ рд▓рд┐рдП рд╣рд░ рдЪреАрдЬ рдХрд╛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдерд╛ред

рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рди (рдпреВрдУрдкреА) рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдСрдкрд░реЗрд╢рди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рд╣реЛрддреЗ рд╣реИрдВред рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рдВрд╕ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд▓рдп, рдХреИрд╢рд┐рдВрдЧ рдФрд░ рд░реАрдСрд░реНрдбрд░рд┐рдВрдЧ рдЬреИрд╕реЗ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MOV рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ 1 рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рди рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдкрд░ XCHG рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдореЗрдВ 3 рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рди рд╣реЛрддреЗ рд╣реИрдВ (рджреГрд╖реНрдЯрд┐рдХреЛрдг "рдЕрд╕реНрдерд╛рдпреА рдЪрд░" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдПрдХ рдЖрдВрддрд░рд┐рдХ рд░рдЬрд┐рд╕реНрдЯрд░, рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж leotsarev ), XCHG рдирд┐рд░реНрджреЗрд╢ рд░рдЬрд┐рд╕реНрдЯрд░ рдФрд░ рдореЗрдореЛрд░реА рдореЗрдВ 8 рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рди рд╣реЛрддреЗ рд╣реИрдВред

рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рдВрд╕ (рдлрд╝реНрдпреВрдЬрд╝реНрдб рдЙрдкреНрд╕) - рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рдВрд╕ рдХреЛ рдорд░реНрдЬ рдХрд░рдирд╛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЗрд╕рдореЗрдВ рджреЛ рдорд╛рдЗрдХреНрд░реЛ-рдСрдкрд░реЗрд╢рдВрд╕ рдХреЛ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд┐рд▓рдВрдмрддрд╛ рдЙрдкрд╛рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдирд┐рд░реНрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред

рдереНрд░реВрдкреБрдЯ (рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдкреНрд░рд╡рд╛рд╣) - рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдбрд╝реА рдЪрдХреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдмрд╢рд░реНрддреЗ рдХрд┐ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рдХреНрд░рдо рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡реЗ рд╕реНрд╡рддрдВрддреНрд░ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдЗрди рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реЗрдЯ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдХреЗрд╡рд▓ "рдореВрд▓реНрдпрд╛рдВрдХрди" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХрдИ рдХрд╛рд░рдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рд╣рд┐рдЯ рдпрд╛ рдорд┐рд╕ рдХреИрд╢, рдбреЗрдЯрд╛ рдирд┐рд░реНрднрд░рддрд╛, рдЖрджрд┐ред

рдпреЗ рдЖрдВрдХрдбрд╝реЗ рдЗрдВрдЯреЗрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕реНрдХрд╛рдИрд▓реЗрдХ-рдПрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╣реИрдВред рдпрд╣ рдореЗрд░реЗ рдЗрдВрдЯреЗрд▓ рдХреЛрд░ i7-6700 рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред

рдпрд╣ рднреА рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ 64 рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдлрд╛рд╕реНрдЯрдХреЙрд▓ 2 рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ 4 рдкреИрд░рд╛рдореАрдЯрд░ (рдЖрд░рдПрдХреНрд╕, рдЖрд░рдбреАрдПрдХреНрд╕, рдЖрд░ 8, рдЖрд░ 9) рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ


1. рдРрд░реЗ рдЗрдВрдбреЗрдХреНрд╕рд░


рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ:

public int IndexerArray(int index, int[] array) { return array[index]; } 

рдЗрд╕ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд▓рд┐рдП рдХреЛрдбрд╛рдВрддрд░рдХ рднрд╛рд╖рд╛ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

 1. cmp edx,dword ptr [r8+8] 2. jae 00007ff9`07288c78 3. movsxd rax,edx 4. mov eax,dword ptr [r8+rax*4+10h] 

рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдпрд╣ рдЬрд╛рдВрдЪрддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╕рд░рдгреА рдХреА рд╕реАрдорд╛ рд╕реЗ рдЖрдЧреЗ рдЬрд╛рддрд╛ рд╣реИред рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рд╣рдо рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рд╕рд░рдгреА рдореЗрдВ рдкрд╣рд▓реЗ рдлрд╝реАрд▓реНрдб рд╕реЗрд╡рд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ (рдЕрддрд┐рд░рд┐рдХреНрдд 10h = 16 рдмрд╛рдЗрдЯреНрд╕) рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА:
рд╕рдВрдЦреНрдпрд╛рдлреНрдпреВрдЬ рд╣реЛ рдЧрдП рдЙрдлрд╝рдХреБрд▓ рдЙрдлрд╝рд╡рд┐рд▓рдВрдмрдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдереНрд░реВрдкреБрдЯ
11210.5
2111-2
31110.25
41120.5



2. рдкрд╕рдВрджреАрджрд╛ рд╕реВрдЪреА <>


рд╕реНрдпрд╛рд╣реА рдХреЛрдб:
 public int IndexerList(int index, List<int> list) { return list[index]; } 


рд╡рд┐рдзрд╛рдирд╕рднрд╛ рднрд╛рд╖рд╛ рдХреЛрдб:

 1. cmp edx,dword ptr [r8+10h] 2. jae M00_L00 3. mov rax,qword ptr [r8+8] 4. cmp edx,dword ptr [rax+8] 5. jae 00007ff9`07268f56 6. movsxd rdx,edx 7. mov eax,dword ptr [rax+rdx*4+10h] ret M00_L00 call System.ThrowHelper.ThrowArgumentOutOfRange_IndexException() 

рдпрд╣рд╛рдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╢реАрдЯ рдЗрдВрдбреЗрдХреНрд╕ рд╕рд░рдгреА рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИред рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рд░рдгреА рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рдЬрд╛рдиреЗ рдХреА рдЬрд╛рдБрдЪ рджреЛ рдмрд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓рд╛ рдирд┐рд░реНрджреЗрд╢ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╢реАрдЯ рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдПрдХ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП (рдирд┐рд░реНрджреЗрд╢ 2) рдХреВрджрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рд╕рд░рдгреА рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд░реЗ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдмреЙрд░реНрдбрд░ рдЪреЗрдХ рд╢реАрдЯ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреНрд░рдо рдореЗрдВ рджреВрд╕рд░рд╛ (10h (16) рдСрдлрд╝рд╕реЗрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ, 8 рд╕реЗ рдкреЙрдЗрдВрдЯрд░ рд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдЖрдВрддрд░рд┐рдХ рд╕рд░рдгреА рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 8 - рдкрд╣рд▓рд╛ рдлрд╝реАрд▓реНрдб) рд╣реИред рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рдореЗрдВ, рд╣рдо rax рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд╕рд░рдгреА рдХреЗ рдкрддреЗ рдХреЛ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ - рдкрд╣рд▓рд╛ рдлрд╝реАрд▓реНрдб (рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, 8 рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдСрдлрд╝рд╕реЗрдЯ рд╡рд┐рдзрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдПрдХ рд╕рдВрдХреЗрддрдХ рд╣реИ)ред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдЕрдиреБрднрд╛рдЧ рджреНрд╡рд╛рд░рд╛ рдкреАрдЫрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХрд╛рдВрдХ рд╕рдВрджрд░реНрдн (рд▓рд╛рдЗрдиреЗрдВ 4 - 7)ред рдпрд╣рд╛рдВ, рд╕реАрдорд╛рдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░рдгреА рдХреЗ рдЖрдВрддрд░рд┐рдХ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдЙрди рдЪреАрдЬреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреЛ рд╕реАрдзреЗ рдЕрдиреБрдХреНрд░рдордг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдпрд╣ рд╕реЗрд╡рд╛рдирд┐рд╡реГрддреНрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рди рд▓рдЧреЗ рдХрд┐ рд╢реАрдЯ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реЛрдЧрд╛: рдбреА

рд╡реИрд╕реЗ, рддрд╛рдХрд┐ рдЖрдк рдЕрдЯрдХрд▓ рдХреЗ рд╕рд╛рде рдкреАрдбрд╝рд╛ рди рджреЗрдВ, рдХреГрдкрдпрд╛ рд╕рдВрджрд░реНрдн рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╢реАрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВред рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд┐рд▓реЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рддреБрд▓рдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирддреАрдЬрддрди, рд╣рдореЗрдВ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 7 рдирд┐рд░реНрджреЗрд╢ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╕рд░рдгреА рдореЗрдВ 3 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред

рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА:
рд╕рдВрдЦреНрдпрд╛рдлреНрдпреВрдЬ рд╣реЛ рдЧрдП рдЙрдлрд╝рдХреБрд▓ рдЙрдлрд╝рд╡рд┐рд▓рдВрдмрдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдереНрд░реВрдкреБрдЯ
11210.5
2111-2
31120.5
41210.5
5111-2
61110.25
71120.5


рдиреНрдпреВ - рд╕реНрдкреИрди <>


рдмрд╣реБрд╡рдЪрди:

 public int IndexerSpan(int index, Span<int> span) { return span[index]; } 

рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рднрд╛рд╖рд╛ рдореЗрдВ:

 1. cmp edx,dword ptr [r8+8] 2. jae 00007ff9`07278f69 3. mov rax,qword ptr [r8] 4. movsxd rdx,edx 5. mov eax,dword ptr [rax+rdx*4] 

рдЬрдм рд╕реНрдкреИрди рдХреА рдШреЛрд╖рдгрд╛ рдХреА рдЧрдИ, рддреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рдореЗрдВ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдХрд┐ рд░рдирдЯрд╛рдЗрдо рдХреЗ рд╕рдорд░реНрдерди рд╕реЗ, рдЙрдиреНрд╣реЗрдВ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╡реЗ рдЭреВрда рдирд╣реАрдВ рдмреЛрд▓рддреЗ рдХрд┐ рдХреНрдпрд╛ рдХрд╣рдирд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд╢рд╛рд╕реНрддреНрд░реАрдп рд╕рд░рдгреА рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдкрддреЗ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░рдг рд╣реИред рдЗрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореЗрдореЛрд░реА рд╕реНрдерд╛рди рдХрд╛ рдкрддрд╛ рд╕реНрдкреИрди рдХреЗ рдЕрдВрджрд░ рдЫрд┐рдкрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рддрддреНрд╡ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо рд▓рд╛рдЗрди 3 рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╡реНрдпреВрд╣, рд▓рд╛рдЗрди рдпрд╛ рд╕реНрдЯреИрдХ рдкрд░ рдореЗрдореЛрд░реА рдХреЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдХрд╛ рдкрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдорд╕реНрддреА рдХреЗ рд▓рд┐рдП рд╕реНрдкреИрди рдЗрдВрдбреЗрдХреНрд╕рд░ рд╕реЗ рдкрд░рд┐рдЪрдп рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред PROJECTN UWP рдХреЗ рд▓рд┐рдП .NET рдиреЗрдЯрд┐рд╡ рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдХреЛрдб рдирд╛рдо рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдЙрд╕реЗ рдЯреИрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ [рдЖрдВрддрд░рд┐рдХ] ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдЗрд╕ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд┐рд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд░реНрдЧ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЖрдВрддрд░рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

[рдЖрдВрддрд░рд┐рдХ] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЙрд▓ рдпрд╛ рд╕рдВрджрд░реНрдн рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдХрд╛ рд╕рдорд░реНрдерди рд╣реИред

CoreCLR рдореЗрдВ , рдРрд╕реЗ рддрд░реАрдХреЛрдВ рдХреЗ рдирд┐рдХрд╛рдпреЛрдВ рдХреЛ EE (рдирд┐рд╖реНрдкрд╛рджрди рдЗрдВрдЬрди) рджреНрд╡рд╛рд░рд╛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб (рдЕрд╕реБрд░рдХреНрд╖рд┐рдд) рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк getILIntrinsicImplementationForUnsafe рд╡рд┐рдзрд┐ рд╕реЗ рдЦреБрджрд╛рдИ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рдХреЛрд░рдЖрд░рдЯреА рдореЗрдВ рдХрд╛рдо рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рд░реВрдЪрд┐ рджреЗрддрд╛ рд╣реИ) рдХреА рдЬрд╛рдирдХрд╛рд░реА,
рдЖрдк Internal.IL.Stubs.UnsafeIntrinsics рдХреЛ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд░рд╕рд╛рдд рдХреЗ рдРрд╕реЗ рд╕рдорд░реНрдерди рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рдпрд╣ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рднрд╛рд╖рд╛ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬреЛ рд╣рдордиреЗ рдХрд┐рдпрд╛ рдерд╛ред

рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА:
рд╕рдВрдЦреНрдпрд╛рдлреНрдпреВрдЬ рд╣реЛ рдЧрдП рдЙрдлрд╝рдХреБрд▓ рдЙрдлрд╝рд╡рд┐рд▓рдВрдмрдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдереНрд░реВрдкреБрдЯ
11210.5
2111-2
31120.5
41110.25
51120.5


рд╕рднреА рдЗрдВрдбреЗрдХреНрд╕рд░реНрд╕ рдбреЗрдЯрд╛ рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдирд┐рд░реНрднрд░ рд╣реИрдВ: рдирд┐рд░реНрджреЗрд╢ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдХреЛрдИ рдЕрд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ рд╣реЛрдирд╛ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЕрдм рдЗрд╕ рдпрд╛ рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдУрд╡рд░рд╣реЗрдб рд╕реНрдкрд╖реНрдЯ рд╣реИред рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдирд┐рд╖реНрдХрд░реНрд╖ред рдпрджрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рд▓рдЧрд╛рддрд╛рд░ рдкрд╣реБрдВрдЪ рд╢рд╛рдорд┐рд▓ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╕рд░рдгреА рдХреЗ рд╕рд╛рде рд╢реАрдЯ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрджрд┐ рдХреЙрд▓ рдмрд╣реБрдд рдЕрдХреНрд╕рд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рд╢реАрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдореИрдВ рдЖрдкрдХреЛ рдЖрдВрддрд░рд┐рдХ рд╕рд░рдгреА рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ)ред

рдЕрдм рдЖрдЗрдП рдЙрди рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╣рдо рдПрдХ рджреЛ-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рд░рдгрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА (рджрд╛рдВрддреЗрджрд╛рд░ рд╕рд░рдгреА) рдФрд░ рдПрдХ рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА (рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА)ред

4. рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА


рддреАрд╡реНрд░ рдХреЛрдб:

 public int IndexerDimensionalArray(int index1, int index2, int[,] demensionalArray) { return demensionalArray[index1, index2]; } 

рд╡рд┐рдзрд╛рдирд╕рднрд╛ рднрд╛рд╖рд╛:

 1. mov eax,edx 2. sub eax,dword ptr [r9+18h] 3. cmp eax,dword ptr [r9+10h] 4. jae 00007ff9`00098fe6 5. mov edx,r8d 6. sub edx,dword ptr [r9+1Ch] 7. cmp edx,dword ptr [r9+14h] 8. jae 00007ff9`00098fe6 9. mov ecx,dword ptr [r9+14h] 10. imul rcx,rax 11. mov rax,rdx 12. add rax,rcx 13. mov eax,dword ptr [r9+rax*4+20h] 

рд╕рдм рдХреБрдЫ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - 2 рд╕рд░рдгреА рдХреА рд╕реАрдорд╛рдУрдВ рдкрд░ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд▓рдЯрддрд╛ рд╣реИред рдпрд╣ рд╕рд░рдгреА рдПрдХ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИред

рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА:
рд╕рдВрдЦреНрдпрд╛рдлреНрдпреВрдЬ рд╣реЛ рдЧрдП рдЙрдлрд╝рдХреБрд▓ рдЙрдлрд╝рд╡рд┐рд▓рдВрдмрдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдереНрд░реВрдкреБрдЯ
1110-10.25
2120.5
31210.5
4111-2
5110-10.25
6120.5
71210.5
8111-2
91120.5
101131
11110-10.25
121110.25
131120.5



5. рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рд╕рд░рдгреА (рджрд╛рдВрддреЗрджрд╛рд░ рд╕рд░рдгреА)


 public int IndexerJaggedArray(int index, int index2, int[][] jaggedArray) { return jaggedArray[index][index2]; } 

рдХреЛрдбрд╛рдВрддрд░рдХ:

 1. cmp edx,dword ptr [r9+8] 2. jae 00007ff9`00098f95 3. movsxd rax,edx 4. mov rax,qword ptr [r9+rax*8+10h] 5. cmp r8d,dword ptr [rax+8] 6. jae 00007ff9`00098f95 7. movsxd rdx,r8d 8. mov eax,dword ptr [rax+rdx*4+10h] 

рдФрд░ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдЖрдпрд╛рдореА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдкреНрд░рдХрд╛рд░ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдХрдо рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред

рдирд┐рд░реНрджреЗрд╢реЛрдВ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА:
рд╕рдВрдЦреНрдпрд╛рдлреНрдпреВрдЬ рд╣реЛ рдЧрдП рдЙрдлрд╝рдХреБрд▓ рдЙрдлрд╝рд╡рд┐рд▓рдВрдмрдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдереНрд░реВрдкреБрдЯ
11210.5
2111-2
31110.25
41120.5
51210.5
6111-2
71110.25
81120.5


рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ 2 рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдирд┐рд╖реНрдХрд░реНрд╖ рдкрд░ рди рдЬрд╛рдПрдВред рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдПрдХ рджреНрд╡рд┐-рдЖрдпрд╛рдореА рд╕рд░рдгреА рдПрдХ рдПрдХрд▓ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдЬрд┐рд╕реЗ 1 рдмрд╛рд░ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреВрд░реЗ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдПрдХ рдмрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░ рдХреИрд╢ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕рд░рдгреА рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЕрд▓рдЧ рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рдПрдЧреА, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕реНрдореГрддрд┐ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╢рд╛рдпрдж рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдзрд┐рдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛрдЧрд╛ред рд╢рд╛рдпрдж рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдЗрд╕ рдирдореВрдиреЗ рдХрд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рд╣реЛрдЧрд╛ред рдФрд░ рдмрдбрд╝реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдореЗрдВ рди рдЧрд┐рд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреЛ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рджреВрд╕рд░реА рдкреАрдврд╝реА рд╣реИ), рдЬрд╣рд╛рдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рдХрд╛ рдореМрдХрд╛ рд╣реИ, рдЬрд┐рддрдирд╛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХред рдпрд╛ рдХреБрдЫ рд╕рдордп рдмрд╛рдж рд╣рдо рдХреЗрд╡рд▓ рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рд╕рдм рд╕рд╛рдл рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрд╕рдВрдЧрдд рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ, рдЬрдм рдХреИрд╢ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╕рд░рдгреА рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдХреЛ рдХреЙрдореНрдкреИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЭрд╛рдбреВ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд░рд┐рдорд╛рдЗрдВрдбрд░: рдореЗрдореЛрд░реА рдХреЛ рд╡рд┐рдЦрдВрдбрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдирдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреА рдХреБрд▓ рдорд╛рддреНрд░рд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рд░рд╛рд╢рд┐ рдХрд╛ рдХреЛрдИ рдирд┐рд░рдВрддрд░ рдореБрдХреНрдд рдХреНрд╖реЗрддреНрд░ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЙрдореНрдкреИрдХреНрдЯрд┐рдВрдЧ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдбреАрдлрд╝реНрд░реИрдЧреНрдореЗрдиреНрдЯреЗрд╢рди рдХреЗ рд▓рдХреНрд╖реНрдп рдХреЗ рд╕рд╛рде рд▓реЗ рдЬрд╛рдирд╛ред рдпрджрд┐ рд╣рдо рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рдореЗрдореЛрд░реА рдХреЗ рдирд┐рд░рдВрддрд░ рдЦрд┐рдВрдЪрд╛рд╡ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рддреЛ рд╣рдо рдмрд╕ рдЗрд╕ рдореБрдХреНрдд рд╕реНрдерд╛рди рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╕реНрд╡реАрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЖрдкрдХреЛ рд╕рд╣реА рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдиреЗ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреА рд░рд╛рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

Source: https://habr.com/ru/post/hi450428/


All Articles