
рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИ, рдмрд╕ рдЗрд╕ рдЧрд╣рд░реЗ рдЕрд░реНрде рдореЗрдВ рд▓реЗрдиреЗ рдФрд░ рддрд▓реНрд▓реАрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореВрд▓ рдХреЗ рдЦреБрд▓реЗ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдФрд░, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдЕрдирдВрдд # #ред
рдЬрдм рдореИрдВрдиреЗ рдИрд╡реЗрдВрдЯреНрд╕ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ (.NET рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдирд╣реАрдВ!), рдореИрдВрдиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдКрд░реНрдЬрд╛ рдЦрд░реНрдЪ рдХреА рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдШрдЯрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдХрд╛рд░реНрдпрдкреНрд░рдгрд╛рд▓реА рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬреЛ рдХрд┐ C # рдореЗрдВ
рдЗрд╡реЗрдВрдЯ рдХреАрд╡рд░реНрдб рд▓рдЧрддрд╛ рд╣реИред
рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рдкреНрд░рддрд╛рдбрд╝рд┐рдд
MSDN рдХреЛ рдЙрджреНрдзреГрдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред
рдЖрдкрдХреЛ рдХреНрдпрд╛ рд╕реАрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- 1. рдЖрдкрдХреЛ рд╕реАрдЦрдиреЗ рд╕реЗ рдирд╣реАрдВ рдбрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреГрдкрдпрд╛ рдзреАрд░реЗ рдФрд░ рд╕реЛрдЪ рд╕рдордЭрдХрд░ рдкрдврд╝реЗрдВред
- 2. рдЖрдкрдХреЛ рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдПред
- 3. рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП
рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИрдВред рдпрджреНрдпрдкрд┐, рдЖрдк рд▓реЗрдЦ рдкрдврд╝рддреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдШрдЯрдирд╛ рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ, рдЬрдм рдпрд╣ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдХ рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдХрдИ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдореЙрдбрд▓рд┐рдВрдЧ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ, рдПрдХ
рдИрд╡реЗрдВрдЯ рдПрдХ рдирд╛рдорд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрд╣реНрд╡рд╛рди рдкрд░, рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рднреА рддрд░реАрдХреЗ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╡реЗрдВрдЯ рдХреЗ рдЖрд╣реНрд╡рд╛рди рдХреЗ рд╕рдордп рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╡реНрдпрд╛рдЦреНрдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдШрдЯрдирд╛ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкреВрд░реЗ рд╕рд╛рд░ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддреА рд╣реИ, рди рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрдд рдХреЛ "рддреЗрдЬ-рдкреНрд░рдЪрд╛рд░" рд╕реЗ рднреНрд░рдорд┐рдд рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд╕рд┐рд░ рдореЗрдВ рдкреВрд░реЗ рдЕрд░реНрде рдХреЛ рддрд░реНрдХрд╕рдВрдЧрдд рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдмрдирд╛рддреА рд╣реИред
рддреЛ, рдПрдХ
рдШрдЯрдирд╛ , рдпрд╣ рдПрдХ рд╕реНрдерд┐рддрд┐ рд╣реИ рдЬрдм рдпрд╣ рд╣реЛрддрд╛ рд╣реИ, рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛрдВрдЧреАред рдШрдЯрдирд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд╛рд░реНрдп рд╣реИ: рддреАрди рд╡рд░реНрдЧреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╡рд░реНрдЧ рдПрдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ 100 рддрдХ рдЧрд┐рдирд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдп рджреЛ рдХрдХреНрд╖рд╛рдПрдВ рдХрд╛рдЙрдВрдЯрд░ рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реА рдХрдХреНрд╖рд╛ рдореЗрдВ 71 рддрдХ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рдХреНрдпрд╛рдВрд╢ "рдпрд╣ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 71 рд╣реИ!" рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдЬрдм 71 рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдХреНрд░рдорд╢рдГ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЪрд▓реЛ рд╕рдм рдХреБрдЫ рдЕрд▓рдорд╛рд░рд┐рдпреЛрдВ рдкрд░ рд░рдЦ рджрд┐рдпрд╛ред
1. рд╕реНрдерд┐рддрд┐ рдореЙрдбрд▓рд┐рдВрдЧред
рд╣рдо рдЗрди рддреАрди рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд░реНрдЧреЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдХреЛ
рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗ рдЕрдЫреВрддрд╛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред
рдХреНрд▓рд╛рд╕рдХрд╛рдЙрдВрдЯрд░ рдХреНрд▓рд╛рд╕ рдФрд░ рдЙрд╕рдХреА
рдЧрдгрдирд╛ () рдкрджреНрдзрддрд┐ рдЬрд┐рд╕рдореЗрдВ рдЧрд┐рдирддреА рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред (рдХреЛрдб рдореЗрдВ, рдореИрдВ рдирд╛рдорд╕реНрдерд╛рди
рдирд╛рдорд╕реНрдерд╛рди рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджрд┐рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реИ)ред
class ClassCounter
рджреЛ рдЕрдиреНрдп рдХрдХреНрд╖рд╛рдПрдВ (
рд╣реИрдВрдбрд▓рд░_рдЖрдИ рдФрд░
рд╣реИрдВрдбрд▓рд░_ II рдирд╛рдо), рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп
рд╕рдВрджреЗрд╢ () рд╡рд┐рдзрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдШрдЯрдирд╛ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рд╕рд╣рдорддрд┐ рд╣реИред
class Handler_I
class Handler_II { public void Message() { Console.WriteLine(", 71!"); } }
рдореБрдЭреЗ рдпрд╛рдж рджрд┐рд▓рд╛рдПрдВ, рдЬрдм рдХрд╛рдЙрдВрдЯрд░ 100 рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ рдФрд░ 71 рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рддреЛ рд╣реИрдВрдбрд▓рд░_рдЖрдИ рдФрд░ рд╣реИрдВрдбрд▓рд░_II рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ () рддрд░реАрдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдПред
рдЕрдм рд╡рд╛рдкрд╕ ClassCounter рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрд╛рдЙрдВрдЯрд░ рдЪрд░
int i рдХреЗ рд╕рд╛рде рд▓реВрдк рдХреЗ
рд▓рд┐рдП рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдмрдирд╛рдПрдВред
class ClassCounter
рдкрд╣рд▓рд╛ рдЪрд░рдг рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдХреНрд▓рд╛рд╕ рдФрд░ рджреЛ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ рдЬреЛ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреАред рдЯрд╛рд╕реНрдХ рдХреА рд╕реНрдерд┐рддрд┐: рдЬреИрд╕реЗ рд╣реА
рдореИрдВ = 71 ,
рд╕рдВрджреЗрд╢ () рджреЛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ
Handler_I рдФрд░
Handler_II рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
2. рдЗрд╡реЗрдВрдЯ рдбрд┐рдЬрд╛рдЗрдиред
рд╣рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реЗ рдЕрдореВрд░реНрдд рд╣реИрдВред рдЬрд┐рд╕ рдШрдЯрдирд╛ рдХреЛ рд╣рдо рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рд╡рд╛рдХреНрдпрд╛рдВрд╢ "... рдХрд╛рдЙрдВрдЯрд░ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рдФрд░ рдЬреИрд╕реЗ рд╣реА рдпрд╣ 71 рд╣реЛрддрд╛ рд╣реИ, рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред" рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ "рдЬреИрд╕реЗ рд╣реА рдпрд╣ 71 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред"
рдпрджрд┐ рдХрдерди рд╣реИ рддреЛ рд╕рд╢рд░реНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред
class ClassCounter
рд╣рдо рдИрд╡реЗрдВрдЯ
рдЗрд╡реЗрдВрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ ред рд╣рдо рдЙрди рддрд░реАрдХреЛрдВ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ i = 71 рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЙрдирдХреЗ
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ (рдпрд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк)ред
рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рддрдерд╛рдХрдерд┐рдд рд╡рд┐рдирд┐рд░реНрджреЗрд╢ (рдпрд╛, рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ, "рдЯреЗрдореНрдкрд▓реЗрдЯ") рдХреЗ рд╣реИрдВ рд╡рд┐рдзрд┐ рдпрд╛ рддрд░реАрдХреЗред рдпрд╣ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд╛рдо рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ рдЬреЛ рд╡рд┐рдзрд┐ рд▓реМрдЯрддреА рд╣реИ, рд╕рд╛рде рд╣реА рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд╛рдо (рдХреНрд░рдо рдореЗрдВ! рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред)
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
int NewMethod (int x, char y) рд╡рд┐рдзрд┐ рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░
int (int, char) рдФрд░
рд╢реВрдиреНрдп NewMethod () рд╡рд┐рдзрд┐ рдореЗрдВ
рд╢реВрдиреНрдп (void) рд╣реЛрдЧрд╛ ред
MSDN рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ , рдШрдЯрдирд╛рдУрдВ
рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ, рдФрд░ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐,
рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╢рдмреНрджреЛрдВ рдореЗрдВ, "рдПрдХ рдЪрд░ рдПрдХ рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдВрджрд░реНрдн рд╕рдВрдЧреНрд░рд╣реАрдд" рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА рдШрдЯрдирд╛ рджреЛ рд╢реВрдиреНрдп рд╕рдВрджреЗрд╢ () рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдЧреА, рд╣рдореЗрдВ рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
рд╢реВрдиреНрдп (рд╢реВрдиреНрдп) ред
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ (рдЗрд╕реЗ рдореЗрдереЛрдХреЗрдирдЯреЗрдирд░ рдХрд╣рддреЗ рд╣реИрдВ):
class ClassCounter
рдЕрдЧрд▓рд╛, рд╣рдо рдХреАрд╡рд░реНрдб рдИрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдИрд╡реЗрдВрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рдбреЗрд▓рд┐рдЧреЗрдЯ (
MethodContainer ) рдХреЗ рд╕рд╛рде
рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ , рдФрд░ рдЗрд╕рд▓рд┐рдП, рдРрд╕реЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд┐рдирдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░
рд╢реВрдиреНрдп (рд╢реВрдиреНрдп) рд╣реИрдВ ред рдШрдЯрдирд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВрдбрд▓рд░_рдЖрдИ рдФрд░ рд╣реИрдВрдбрд▓рд░_II)ред
рдШрдЯрдирд╛ рдореЗрдВ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рд╣реИ: рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдШрдЯрдирд╛ <DeligentName> <EventName>;
рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд╛ рдирд╛рдо рдЙрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХрд╛ рдирд╛рдо рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╣рдорд╛рд░реЗ рддрд░реАрдХреЗ рд╕рдВрджрд░реНрднрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
class ClassCounter
рдЕрдм, рд╣рдорд╛рд░реЗ рдСрдирдХрд╛рдЙрдВрдЯ рдЗрд╡реЗрдВрдЯ рдХреЛ рдлрд╛рдпрд░ рдХрд░реЗрдВ, рдмрд╢рд░реНрддреЗ рдХрд┐ рдореИрдВ = 71:
if (i == 71) { onCount(); }
рд╡рд╣ рд╕рдм рд╣реИред
рдИрд╡реЗрдВрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ ред рдЗрд╕ рдИрд╡реЗрдВрдЯ рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдШрдЯрдирд╛, рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИред
рдСрдирдХрд╛рдЙрдВрдЯ рдИрд╡реЗрдВрдЯ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐
рдЖрдЦрд┐рд░ рдХрд┐рди рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╣рдордиреЗ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдП рд╣реИрдВ)ред
3. рд╕рджрд╕реНрдпрддрд╛ред
рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░
рдХреНрд▓рд╛рд╕рдХрд╛рдЙрдВрдЯрд░ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдВред рдФрд░ рдЙрди рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рднреА рдмрдирд╛рдПрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЙрдиреНрд╣реЗрдВ
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред
class Program { static void Main(string[] args) { ClassCounter Counter = new ClassCounter(); Handler_I Handler1 = new Handler_I(); Handler_II Handler2 = new Handler_II(); } }
рдЕрдм рд╣рдо
рдСрдирдХрд╛рдЙрдВрдЯ рдИрд╡реЗрдВрдЯ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╡рд┐рдзрд┐рдпрд╛рдБ рд▓реЙрдиреНрдЪ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрддрд╛ рд╣реИ:
<рдХреНрд▓рд╛рд╕ рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ>ред рдИрд╡реЗрдВрдЯ рдХрд╛ рдирд╛рдо> + = <рдХреНрд▓рд╛рд╕, рдЬрд┐рд╕рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛> <рд╕рд╛рдЗрди рдЗрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐> ред
рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рдж рдХреЛрдИ рдХреЛрд╖реНрдардХ рдирд╣реАрдВ! рд╣рдо рдЙрд╕реЗ рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрд╕рдХреЗ рдирд╛рдо рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред
class Program { static void Main(string[] args) { ClassCounter Counter = new ClassCounter(); Handler_I Handler1 = new Handler_I(); Handler_II Handler2 = new Handler_II();
рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдЕрдм рдпрд╣
рдХреНрд▓рд╛рд╕рдХрд╛рдЙрдВрдЯрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЬрдм рддрдХ рдореИрдВ 71 рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛, рддрдм рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдЬреИрд╕реЗ рд╣реА i = 71,
рдСрдирдХрд╛рдЙрдВрдЯ рдЗрд╡реЗрдВрдЯ рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐
MethodContainer рджреНрд╡рд╛рд░рд╛
рдлрд╛рдпрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ (рдмрджрд▓реЗ рдореЗрдВ)
рдореИрд╕реЗрдЬ () рдореЗрдердбреНрд╕ рдХреЛ
рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЗрд╡реЗрдВрдЯ рдореЗрдВ
рд╕рдмреНрд╕реНрдХреНрд░рд╛рдЗрдмреНрдб рдереЗред
class Program { static void Main(string[] args) { ClassCounter Counter = new ClassCounter(); Handler_I Handler1 = new Handler_I(); Handler_II Handler2 = new Handler_II(); Counter.onCount += Handler1.Message; Counter.onCount += Handler2.Message;
рдкрд░рд┐рдгрд╛рдо:
рдпрд╣ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 71!
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 71!
рдирд┐рд╖реНрдХрд░реНрд╖ред
рдШрдЯрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд░реНрде рдФрд░ рдЖрджреЗрд╢ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред
- 1. рдШрдЯрдирд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред
- 2. рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмрдирд╛рдПрдВред
- 3. рдЗрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рдПрдВ рдФрд░ рдЬрдм рд╣рд╛рд▓рдд рдХрд╛рдо рдХрд░реЗ рддреЛ рдХреЙрд▓ рдХрд░реЗрдВред
- 4. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ (рдХрд╣реАрдВ рднреА) рдЗрд╕ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдЙрди рддрд░реАрдХреЛрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ рдЬреЛ рдХрд╛рдо рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЬрд┐рдирдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред
рдЬрд┐рд╕ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЖрдк рдШрдЯрдирд╛ (рдЬрдирд░реЗрдЯ) рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдкреНрд░рдХрд╛рд╢рдХ рд╡рд░реНрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рд╡рд░реНрдЧ рдЬрд┐рдирдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ
"+ =" рдХреЗ рд╕рд╛рде рдЗрд╕ рдШрдЯрдирд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреА рд╣реИрдВ, рдЙрдирдХреА рд╕рджрд╕реНрдпрддрд╛ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВред
рдпрд╛рдж рд░рдЦреЗрдВ! рдпрджрд┐ рдЖрдкрдиреЗ рдИрд╡реЗрдВрдЯ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдирд╣реАрдВ рд▓реА рд╣реИ рдФрд░ рдЙрд╕рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдЦрд╛рд▓реА рд╣реИ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред
рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЗрд╡реЗрдВрдЯ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЪреВрдВрдХрд┐ рдЗрд╡реЗрдВрдЯ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИ, рдЗрд╕рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдПрдХ "рдЕрд╢рдХреНрдд рд╕рдВрджрд░реНрдн"
рдЕрд╢рдХреНрдд рд╣реИ )ред
if (i == 71) { if (onCount != null) { onCount(); } }
рдЖрдк рдСрдкрд░реЗрдЯрд░ "
- = ": <ClassOrObject> <EventName> - = <ClassCheyMethodMustStart> <<рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдореЗрд╢рд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдШрдЯрдирд╛рдХреНрд░рдо рдХрд╛ рд▓рд╛рдн рд╕реНрдкрд╖реНрдЯ рд╣реИ:
рдШрдЯрдирд╛ рдХреЛ
рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд╢рдХ рд╡рд░реНрдЧ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ
рд╕рджрд╕реНрдпрддрд╛ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рд╕рджрд╕реНрдпрддрд╛ рдпрд╛ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреБрдЫ рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдШрдЯрдирд╛ рдмрдирд╛рдИ, рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ред
рдХрд╕реНрдЯрдо рдирд┐рдпрдВрддреНрд░рдг рдШрдЯрдХреЛрдВ (рдмрдЯрди, рдкреИрдирд▓, рдЖрджрд┐) рдХреА рд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╡рд╛рд▓ рдЙрда рд╕рдХрддрд╛ рд╣реИ: рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдЧрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рдПрдХ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рднреА рд╣реЛ!)ред
рдЙрддреНрддрд░: рдпрд╣ рд╕рдм рдЙрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ред рдЬрдм рдЖрдк рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзрд┐ "рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ", рддрдм (!) рдЬрдм рдШрдЯрдирд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛ред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
.NET рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджред Microsoft рдиреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ: .NET
EventHandler, рдФрд░ рдЗрд╕реА рддрд░рд╣ рдПрдХ рддреИрдпрд╛рд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
EventArgs рдХреЗ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ "рдкреИрдХреЗрдЬ"ред рдХреНрдпрд╛ рдЖрдк рдПрдХ рдШрдЯрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ? рд╕рдорд╛рдкреНрдд EventHandler рд▓реЗрдВ, рдЗрд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЙрдиреНрд╣реЗрдВ
рдХрдХреНрд╖рд╛ рдореЗрдВ "рдкреБрд╢" рдХрд░реЗрдВ, рдФрд░ EventArgs рд╕реЗ рд╡рд░реНрдЧ рд╡рд╛рд░ рдХрд░реЗрдВред рдФрд░ рдлрд┐рд░ - рдЕрдиреБрд╕реВрдЪрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ)
рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рдореИрдВ рдЙрдирд╕реЗ рд╕рд╣рдордд рд╣реВрдВ) рдХрд┐ рдШрдЯрдирд╛рдУрдВ рдХреА "рдЧрд▓рддрдлрд╣рдореА" рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдЙрдирдХреЗ рдЖрд╡реЗрджрди рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреБрдЫ рдЙрдкрд▓рдмреНрдз рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред рдЦреИрд░, рдЕрднреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдордд рднреВрд▓рдирд╛ред
PS рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдкрд░ рдмреЗрд╣рддрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред
рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕ рдХрдард┐рди рд╡рд┐рд╖рдп рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп!