рдПрд░рд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рд╕реНрд░реЛрдд рд╣реИрдВред
рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдпрд╛ рдмреБрд▓рд┐рд╢
рд╕реА # рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдХреНрдпрд╛ рд╣реИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЦреНрдп рд▓рдбрд╝рд╛рдЗрдпреЛрдВ - рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рдж рдпрд╛ рд░рд┐рдЯрд░реНрди рдХреЛрдб рджреВрд░ рдЕрддреАрдд (*) рдореЗрдВ рдЪрд▓реЗ рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рддрд░рд╣ рдХреА рд▓рдбрд╝рд╛рдИ рдЕрднреА рднреА рдХрдо рдирд╣реАрдВ рд╣реБрдИ рд╣реИ: рд╣рд╛рдБ, рдареАрдХ рд╣реИ, рд╣рдо рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдкрд░ рдмрд╕ рдЧрдП, рд▓реЗрдХрд┐рди рд╣рдо рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ "рд╕рд╣реА рдврдВрдЧ рд╕реЗ" рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ?
"рд╕рд╣реА" рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЙрдмрд▓рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрди рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╢реЗрд╖ рдХреЛ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдореЗрдВ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВред рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдПрдХ рдЕрдЧреЛрдЪрд░ рдЕрдкрд╡рд╛рдж рдиреЗ рдЗрд╕реЗ рдКрдкрд░реА рд╕реНрддрд░ рдкрд░ рдмреЛрд▓реНрдб рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╢реВрдЯ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕реБрд╕рдВрдЧрдд рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдбрд╛рд░реНрд▓рд┐рдВрдЧред
рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рдХрдИ рдирд┐рдпрдо рдФрд░ рд╡рд┐рдкрдХреНрд╖ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЬ рдореИрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЕрд░реНрдерд╛рддреН, рдЕрдкрд╡рд╛рдж рдХреА рдШрдЯрдирд╛ рдХреЗ рдЖрд▓реЛрдХ рдореЗрдВ рдЖрд╡реЗрджрди рдХреА рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рд╖рдп, рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рддреАрди рд╕реНрддрд░ рд╣реИред
рддреАрди рддрд░рд╣ рдХреА рдЧрд╛рд░рдВрдЯреА
1990 рдХреЗ рджрд╢рдХ рдХреЗ рдЙрддреНрддрд░рд╛рд░реНрдз рдореЗрдВ, рдбреЗрд╡ рдЕрдмреНрд░рд╛рд╣рдо рдиреЗ рддреАрди рд╕реНрддрд░ рдХреА рдЕрдкрд╡рд╛рдж рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдкреЗрд╢рдХрд╢ рдХреА: рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЧрд╛рд░рдВрдЯреА, рдПрдХ рд╕рдЦреНрдд рдЧрд╛рд░рдВрдЯреА рдФрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдЧрд╛рд░рдВрдЯреАред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ C ++ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЧрд░реНрдордЬреЛрд╢реА рд╕реЗ рд╕реНрд╡рд╛рдЧрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╣рд░реНрдм рд╕рдЯрд░ рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреЗ рд▓реЛрдХрдкреНрд░рд┐рдпрдХрд░рдг (рдФрд░ рдХреБрдЫ рд╕рдВрд╢реЛрдзрди) рдХреЗ рдмрд╛рдж, рдорд╛рдирдХ C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ, рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднреА рдЕрдкрд╡рд╛рдж рд╕реБрд░рдХреНрд╖рд╛ рдЧрд╛рд░рдВрдЯреА рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд▓рдЧрд╛ред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЗрди рдЧрд╛рд░рдВрдЯрд┐рдпреЛрдВ рдХреЛ C ++ рдореЗрдВ STLPort рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд╡ рдЕрдмреНрд░рд╛рд╣рдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдкрд╡рд╛рдж рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдмрд╣реБрдд рд╡рд┐рдЪрд╛рд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╕реЗ рдмрдВрдзрд╛ рд╣реБрдЖ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдЬрд╛рд╡рд╛ рдпрд╛ C # рдЬреИрд╕реЗ рдореБрдЦреНрдп рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╕реБрд░рдХреНрд╖рд╛ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ: (1) рдбреЗрд╡ рдЕрдмреНрд░рд╛рд╣рдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдореВрд▓ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ (2) рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╕реНрдХрд░рдг, рдЬреЛ Satter рдФрд░ Straustrup рджреНрд╡рд╛рд░рд╛ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рдФрд░ рди рдХреЗрд╡рд▓ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдмрд▓реНрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╣реИред
рдореВрд▓ рд╡рд╛рд░рдВрдЯреА
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ : "
рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд░рд┐рд╕рд╛рд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ ред"
рдЖрдзреБрдирд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ : "
рдпрджрд┐ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╡рд┐рдзрд┐ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕реНрдерд┐рддрд┐ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП ред" рдЗрд╕рдХрд╛ рдорддрд▓рдм рди рдХреЗрд╡рд▓ рд╕рдВрд╕рд╛рдзрди рд▓реАрдХ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рд╣реИ, рдмрд▓реНрдХрд┐ рд╡рд░реНрдЧ рдХреЗ рдЖрдХреНрд░рдордгрдХрд╛рд░рд┐рдпреЛрдВ рдХрд╛ рд╕рдВрд░рдХреНрд╖рдг рднреА рд╣реИ, рдЬреЛ рдореВрд▓ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдирджрдВрдб рд╣реИред
рдЗрди рджреЛрдиреЛрдВ рдпреЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдореВрд▓ рд░реВрдк рд╕реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ C ++ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреА рдЧрдИ рдереА рдФрд░ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА, рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдФрд░ рд╕рд┐рд░реНрдл рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ), рддреЛ рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рд░рд┐рд╕рд╛рд╡ рдХреЗрд╡рд▓ рдмрдЧ рдХреЗ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рд╕реЗ рджреВрд░ рд╣реИред рд╕рдордп (**) рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рд░ рдмрд┐рдВрджреБ рдкрд░ рдЗрдиреНрд╡рд░реНрдЯрд░ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдПрдХ рдЧрд╛рд░рдВрдЯреА рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдмрд╛рд╣рд░реА рдХреЛрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмреЗрдореЗрд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ "рджреЗрдЦ" рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рдВрд╕рд╛рдзрди рд▓реАрдХ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдПрдХ рдмреИрдВрдХрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдореЗрдореЛрд░реА рд▓реАрдХ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдпрджрд┐, рдПрдХ рдЦрд╛рддреЗ рд╕реЗ рджреВрд╕рд░реЗ рдЦрд╛рддреЗ рдореЗрдВ рдкреИрд╕рд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреИрд╕рд╛ рдПрдХ рдЦрд╛рддреЗ рд╕реЗ "рдЫреЛрдбрд╝" рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рддрдХ "рдирд╣реАрдВ" рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред
рд╕рдЦреНрдд рд╡рд╛рд░рдВрдЯреА
рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдПрдХ рд╕рдЦреНрдд рдЧрд╛рд░рдВрдЯреА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП, рдореВрд▓ рдФрд░ рдЖрдзреБрдирд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рд╕рдорд╛рди рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд▓рд┐рдП рдЙрдмрд╛рд▓рддреА рд╣реИрдВ: "
рдпрджрд┐ рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП "ред
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рд╕рдЦреНрдд рдЕрдкрд╡рд╛рдж рдЧрд╛рд░рдВрдЯреА рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рд▓реЗрди-рджреЗрди рдХрд╛ рд▓реЗрди-рджреЗрди рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╣рдо рд╕рднреА рдпрд╛ рдХреБрдЫ рднреА рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдХреЛрдИ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЙрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдСрдкрд░реЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдерд╛ рдФрд░ рдирдП рд░рд╛рдЬреНрдп рдореЗрдВ рдХреЗрд╡рд▓ рддрднреА рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдкреВрд░рд╛ рдСрдкрд░реЗрд╢рди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдИ рдмрд╣рд┐рд╖реНрдХрд░рдг рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ
рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд┐рдореНрди рдХреЗ рд▓рд┐рдП рдХрдо рд╣реИ: "
рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдЫреЛрдбрд╝реЗрдВрдЧреЗ "ред
рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЙрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИ рдЬрд┐рддрдирд╛ рд▓рдЧрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗред рдиреЗрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдЬрдм рдЖрд╡реЗрджрди рдореЗрдВ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ рдЕрдкрд╡рд╛рдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдХреЗрд╡рд▓ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЗрдХрд╛рдЗрдпрд╛рдБ рд╣реА рдЗрд╕ рдЧрд╛рд░рдВрдЯреА рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреА рд╣реИрдВ, рдФрд░ рдпрд╣ рдРрд╕реЗ рдкрд░рд┐рдЪрд╛рд▓рдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реЛрддреА рд╣реИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рд╕реНрддрд░реЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреА рдмрдирддреА рд╣реИред C # рдореЗрдВ, рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд▓рд┐рдВрдХ рдХрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╣реИ, рдФрд░ C ++ рдореЗрдВ, рд╕реНрд╡реИрдк рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдПрдХ рд╕рдЦреНрдд рдЧрд╛рд░рдВрдЯреА рдЕрдХреНрд╕рд░ рдорд╣рд╕реВрд╕ рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рд╕рднреА "рдЧрдВрджреЗ рдХрд╛рдо" рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╡рд╕реНрддреБ рдореЗрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рддрдм рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореВрд▓реНрдп рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреВрд╕рд░реЗ, рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдпрджрд┐ рдХреБрдЫ рд╕рдВрдЪрд╛рд▓рди рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЧрд╛рд░рдВрдЯреА рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реА ++ рдореЗрдВ, рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдЕрдкрд╡рд╛рджреЛрдВ (рдпрд╛ рдмрд▓реНрдХрд┐, рд╕рдВрд╕рд╛рдзрди рд░рд┐рд╕рд╛рд╡) рдХреА рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдЕрдкрд╡рд╛рдж рди рдлреЗрдВрдХреЗред
рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рддреАрди рдЕрдкрд╡рд╛рдж рд╕реБрд░рдХреНрд╖рд╛ рдЧрд╛рд░рдВрдЯреА рд╕рдмрд╕реЗ рдХрдордЬреЛрд░ рд╕реЗ рд╕рдмрд╕реЗ рдордЬрдмреВрдд рддрдХ рдЬрд╛рддреА рд╣реИрдВ; рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рдж рдХреА рдЧрд╛рд░рдВрдЯреА рдкрд┐рдЫрд▓реЗ рдПрдХ рдХрд╛ рдПрдХ рд╕реБрдкрд░рд╕реЗрдЯ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рд╕рдЦреНрдд рдЧрд╛рд░рдВрдЯреА рдХреА рдкреВрд░реНрддрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЧрд╛рд░рдВрдЯреА рдХреА рдкреВрд░реНрддрд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреА рд╣реИ, рдФрд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЧрд╛рд░рдВрдЯреА рдПрдХ рд╕рдЦреНрдд рдЧрд╛рд░рдВрдЯреА рдХреА рдкреВрд░реНрддрд┐ рдХреЛ рдордЬрдмреВрд░ рдХрд░рддреА рд╣реИред рдпрджрд┐ рдХреЛрдб рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдмреБрдирд┐рдпрд╛рджреА рдЧрд╛рд░рдВрдЯреА рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рд╕рдордп рдмрдо рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдХреЗ рд░рд╛рдЬреНрдп рдХреЛ рдирд░рдХ рдореЗрдВ рддреЛрдбрд╝рдХрд░ рдЕрдкреНрд░рд┐рдп рдкрд░рд┐рдгрд╛рдо рд╣реЛрдВрдЧреЗред
рдЕрдм рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВред
рдореВрд▓ рд╡рд╛рд░рдВрдЯреА рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ
C ++ рдореЗрдВ рдореЗрдореЛрд░реА рдФрд░ рд░рд┐рд╕реЛрд░реНрд╕ рд▓реАрдХреНрд╕ рдХреЛ рд░реЛрдХрдиреЗ рдХрд╛ рдореБрдЦреНрдп рддрд░реАрдХрд╛
RAII (рд░рд┐рд╕реЛрд░реНрд╕ рдПрдХреНрд╡рд┐рдЬрд┐рд╢рди рдЗрдЬрд╝ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди) рдореБрд╣рд╛рд╡рд░рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЛ
рд╕рдорд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдкрдХрдбрд╝ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдореЗрдВ рдореБрдХреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЪреВрдВрдХрд┐ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рдЧреБрдВрдЬрд╛рдЗрд╢ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдкрд╡рд╛рдж рд╣реЛрдиреЗ рдкрд░, рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реА рдореБрд╣рд╛рд╡рд░реЗ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
C # рдореЗрдВ, рдпрд╣ рдореБрд╣рд╛рд╡рд░рд╛ рдПрдХ
рдЖрдИрдбреАрд╕реЙрдлрд╝рд▓реЗрдЯ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдПрдХ рдирд┐рд░реНрдорд╛рдг рдирд┐рд░реНрдорд╛рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛ рдЧрдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, C ++ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рджрд╛рдпрд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реИ, рдФрд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рдХрдИ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред
рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:
// ,
class DisposableA : IDisposable
{
public void Dispose() {}
}
//
class DisposableB : IDisposable
{
public DisposableB()
{
disposableA = new DisposableA();
throw new Exception( "OOPS!" );
}
public void Dispose() {}
private DisposableA disposableA;
}
// -
using ( var disposable = new DisposableB())
{
// ! Dispose
// DisposableB, DisposableA
}
* This source code was highlighted with Source Code Highlighter .
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ:
рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рдФрд░
рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ , рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдХреБрдЫ рдкреНрд░рдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ
рдбрд┐рд╕реНрдкреЛрдЬрд▓ рд╡рд┐рдзрд┐ рдореЗрдВ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рдЕрдм рд╣рдо рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рд╡рд┐рдЪрд╛рд░ рди рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдирд┐рд░реНрдзрд╛рд░рдХ рд░рд┐рд▓реАрдЬ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдореЗрдВ рд╣рдорд╛рд░реА рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм
рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо
рдбрд┐рд╕реНрдкреЛрдЬ рд╡рд┐рдзрд┐ рдХреЛ рдХрднреА рднреА рдХреЙрд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐
рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрднреА рднреА рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рдерд╛ред рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ, рдЕрдзрд┐рдХрд╛рдВрд╢ рдореБрдЦреНрдпрдзрд╛рд░рд╛ рдХреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрдореЛрдмреЗрд╢ рдПрдХ рдЬреИрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЕрдВрддрд░ рд╣реИрдВред рд╕рдорд╛рдирддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ "рдХреНрд░реИрд╢" рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдЙрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдЧрд╛ рдЬреЛ рдЕрднреА рддрдХ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдореБрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, C ++ рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд┐рд╕рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдлрд╝реАрд▓реНрдб рдХреЗ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ "рдкреНрд░рдмрдВрдзрд┐рдд" C # рднрд╛рд╖рд╛ (***) рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐
рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рд╡рд░реНрдЧ
рдХрд╛ рдирд┐рд░реНрдорд╛рддрд╛ рдЕрдкрд╡рд╛рдж рдХреЛ
рдлреЗрдВрдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ "рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдирд┐рдХрд╛рд╕" (рдпрд╛, рдХрдо рд╕реЗ рдХрдо, рдЙрдирдХреЗ рдЧреИрд░-рдирд┐рд░реНрдзрд╛рд░рдХ рд░рд┐рд▓реАрдЬ) рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдЕрдзрд┐рдХ рд╕реВрдХреНрд╖реНрдо рддрд░реАрдХреЗ рд╕реЗ рдЦреБрдж рдХреЛ рдкреНрд░рдХрдЯ рдХрд░ рд╕рдХрддреА рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдП рдЧрдП рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рдРрд╕реЗ рд╕рдордп рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдмреБрдирд┐рдпрд╛рджреА рдЕрдкрд╡рд╛рдж рдХреА рдЧрд╛рд░рдВрдЯреА рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрдирд╛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред
class Base : IDisposable
{
public Base()
{
//
}
public void Dispose() {}
}
class Derived : Base, IDisposable
{
public Derived( object data)
{
if (data == null )
throw new ArgumentNullException( "data" );
// OOPS!!
}
}
// -
using ( var derived = new Derived( null ))
{}
* This source code was highlighted with Source Code Highlighter .
рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧ рдХреЗ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдореВрд▓ рдЕрдкрд╡рд╛рдж рдЧрд╛рд░рдВрдЯреА рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рдВрд╕рд╛рдзрди рд░рд┐рд╕рд╛рд╡ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐
рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреА
рдбрд┐рд╕реНрдкреЛрдЬрд╝ рд╡рд┐рдзрд┐ рдХреЛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (****)ред рдлрд┐рд░ рд╕реЗ, рдЪреВрдВрдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗрд╡рд▓
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдкреНрд░рд┐рдЬрд╝реНрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
рдЖрдИрдбреАрд╕реЙрдлрд╝рд╛рдпрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрдм рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд░реНрдЧ рдХрд╛ рдХреНрд╖реЗрддреНрд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдбрд┐рд╕реНрдкреЛрдЬрд╝ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрддрд╛ рд╣реИред
рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлреАрд▓реНрдб рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдПрдХ рд╕рдорд╛рди рдордЬрд╝рд╛рдХ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЦреЗрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рд╕рдХрддрд╛ рд╣реИ:
class ComposedDisposable : IDisposable
{
public void Dispose() {}
private readonly DisposableA disposableA = new DisposableA();
// , DisposableB ? OOPS!!
private readonly DisposableB disposableB = new DisposableB();
}
* This source code was highlighted with Source Code Highlighter .
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐
рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдиреЗ
рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рдлрд╝реАрд▓реНрдб рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп
рдПрдХ рдЕрдкрд╡рд╛рдж
рдлреЗрдВрдХрддрд╛ рд╣реИ , рддреЛ рдЗрд╕реЗ рдкрдХрдбрд╝рдирд╛ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред C ++ рдореЗрдВ, рдЕрдкрд╡рд╛рдж рд╕реВрдЪреА рдХреЛ рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓реА рд╕реВрдЪреА (
рдЕрдкрд╡рд╛рдж рдФрд░ рд╕рджрд╕реНрдп рдкреНрд░рд╛рд░рдВрдн рджреЗрдЦреЗрдВ ) рдореЗрдВ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди C # рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд░рд╛рд╕реНрддрд╛ рд╣реИ: рдЗрд╕реЗ рдЕрдиреБрдорддрд┐ рди рджреЗрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдкрд┐рдЫрд▓реЗ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреА рддрд░рд╣, рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдореВрд▓ рдЧрд╛рд░рдВрдЯреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ C # рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ "рдЪреАрдиреА" рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рд╡рд╣ рдпрд╛ рддреЛ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдЙрдк-рд╡рд┐рд╖рдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдФрд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдХреЗ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрдкреЛрдЬреЗрдмрд▓ рдлрд╝реАрд▓реНрдб рдмрдирд╛рдирд╛ рд╣реИ, рдпрд╛ рдПрдХ рдХреЛрд╢рд┐рд╢ / рдХреИрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рдЕрдкрдиреА рд░рдЪрдирд╛ рдХреЛ рд▓рдкреЗрдЯрдирд╛ рд╣реИ рдФрд░ рдЕрдкрд╡рд╛рдж рд╣реЛрдиреЗ рдкрд░ рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдирд╛ рд╣реИредрдЕрдкрд╡рд╛рджреЛрдВ рдХреА рд╕рдЦреНрдд рдЧрд╛рд░рдВрдЯреА рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдЖрд░рдореНрднрдХ
рдКрдкрд░ рджрд┐рдП рдЧрдП рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдореВрд▓ рдЧрд╛рд░рдВрдЯреА рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рдЙрджрд╛рд╣рд░рдг, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рджреВрд░ рдХреА рдХреМрдбрд╝реА рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдо рдирд╣реАрдВ рд╣реИрдВред рдФрд░ рдпрджрд┐ рдХрдИ рдкреНрд░рдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, C # рднрд╛рд╖рд╛ рд╕рдВрдХрд▓рдХ рд╣рдорд╛рд░реА рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХреБрдЫ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рддреЗ рд╕рдордпред
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдФрд░ рдХрд▓реЗрдХреНрд╢рдВрд╕ (рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирд┐рд╢рд▓рд╛рдЗрдЬрд╝рд░ рдФрд░ рдХрд▓реЗрдХреНрд╢рди рдЗрдирд┐рд╢рд▓рд╛рдЗрдЬрд╝рд░) рдХрд╛ рдЗрдирд┐рд▓рд╛рдЗрдЬрд╝рд░ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд▓рд┐рд╕реНрдЯ рдмрдирд╛рдиреЗ рдпрд╛ рдХрд▓реЗрдХреНрд╢рди рдХрд░рдиреЗ рдХреА рдПрдЯреЛрдореЗрд╕реА рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдХрд▓реЗрдХреНрд╢рдВрд╕ рдХреЛ рд▓рд┐рд╕реНрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВред
class Person
{
public string FirstName { get ; set ; }
public string LastName { get ; set ; }
public int Age { get ; set ; }
}
var person = new Person
{
FirstName = "Bill" ,
LastName = "Gates" ,
Age = 55,
};
* This source code was highlighted with Source Code Highlighter .
рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд▓рд┐рдП рд╕рд┐рдВрдЯреИрдХреНрдЯрд┐рдХ рдЪреАрдиреА рд╣реИ:
var person = new Person();
person.FirstName = "Bill" ;
person.LastName = "Gates" ;
person.Age = 55;
* This source code was highlighted with Source Code Highlighter .
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ,
рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЪрд░ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдЗрд╕реЗ рдирдИ рд╡рд╕реНрддреБ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИ :
var tmpPerson = new Person();
tmpPerson.FirstName = "Bill" ;
tmpPerson.LastName = "Gates" ;
tmpPerson.Age = 55;
var person = tmpPerson;
* This source code was highlighted with Source Code Highlighter .
рдпрд╣ рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдкрд░рдорд╛рдгреБрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рдПрдХ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЕрдкрд╡рд╛рдж рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЖрд░рдВрднрд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдерддрд╛ред рдПрдХ рд╕рдорд╛рди рд╕рд┐рджреНрдзрд╛рдВрдд рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдЬрдм рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЗрд╕реЗ рднрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрди рджреЛрдиреЛрдВ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рдореВрд▓ рдХреЛрдб рдореЗрдВ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдПрдХ рд╕рдЦреНрдд рдЧрд╛рд░рдВрдЯреА рдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╕реНрдерд╛рдпреА рдЪрд░ рдореЗрдВ рд╡рд╕реНрддреБ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдФрд░ рдЙрдирдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдкрд░рдорд╛рдгреБ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рдХреЛрдИ рд╕рд╛рдзрд╛рд░рдг рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдХрднреА-рдХрднреА рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдЧрд╛рд░рдВрдЯреА рднреА рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рддрд░рд╣ рдХреА рдЧрд╛рд░рдВрдЯреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╢рд░реНрдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЬрдЧрд╣ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдЫрд┐рдкрд╛рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреВрд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рдПрдХ рдкрддрд▓реА рдкрд░рдд рдХреЗ рд╕рд╛рде рдзрдмреНрдмрд╛ рдХрд░рдирд╛ рд╣реИред рд╕реНрдХреЙрдЯ рдореЗрдпрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рджрд╕ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕реБрдирд╣рд░реЗ рдирд┐рдпрдо рдЕрднреА рднреА рдорд╛рдиреНрдп рд╣реИрдВ: рдРрд╕реА
рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдВ рдЬреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдФрд░ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ , рдФрд░ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреА рд╣реИред
рдЕрдЧрд░ рд╣рдо рдЗрди рдЧрд╛рд░рдВрдЯреА рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд┐рдВрджреБ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдХреЛрдб рдЬреЛ рдореВрд▓ рдЕрдкрд╡рд╛рдж рдЧрд╛рд░рдВрдЯреА рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдЧрд▓рдд рд╣реИ; рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдРрд╕рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд (*****) рд╣реЛрдиреЗ рдкрд░ рдЬрд┐рд╕рдХреА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рддреЛрдбрд╝реА рдЬрд╛рдПрдЧреАред рджреВрд╕рд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкрд╛рдЧрд▓ рдордд рдмрдиреЛ рдФрд░ рдЕрдзрд┐рдХрддрдо рдЧрд╛рд░рдВрдЯреА рдХреА рддрд▓рд╛рд╢ рдХрд░реЛред рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдкрд╡рд╛рдж рдХреА 100% рдЧрд╛рд░рдВрдЯреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕рдЦреНрдд рдЧрд╛рд░рдВрдЯреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдиреБрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорд╣рдВрдЧрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ:
рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдЧрд╛рд░рдВрдЯреА рдПрдХ рд░рд╛рдордмрд╛рдг рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЖрдзрд╛рд░ рд╣реИ ред
----------------------
(*) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА "рдЧрд░реНрдо" рдмрд╣рд╕ рдирд╣реАрдВ рдереА: рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП .Net рдордВрдЪ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕ рддрд░рд╣ рдХреА рдмрд╣рд╕реЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реА ++ рднрд╛рд╖рд╛ рдореЗрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдпрд╣ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИред
(**) рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХрд┐рд╕реА рдХреЛ рд╣рдореЗрд╢рд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдВрд░рдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ; рдЖрдорддреМрд░ рдкрд░, рдЖрд╡рдзрд┐рдХ "рдкрд╣рд▓реЗ" рдФрд░ "рдмрд╛рдж рдореЗрдВ" рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЦреБрд▓реА рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди
рдмрдВрдж рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдХрд╛рд░реНрдп рдХрд╛ рдХреЗрд╡рд▓ "рднрд╛рдЧ" рдХрд░рддрд╛ рд╣реИред
(***) рдпрд╣ рдмрд╣реБрдд рд╣реА рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рднрд╛рд╖рд╛ рдЬреИрд╕реЗ рдХрд┐ C # рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИ рдЬреЛ рдкреБрд░рд╛рдирд╛ C ++ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИред рдЖрдЗрдП, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, C # рд╕реЗ C ++ рддрдХ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ:
class Resource1
{
public :
Resource1()
{
// , -
//
}
~Resource1()
{
//
}
};
class Resource2
{
public :
Resource2()
{
// resource1_
throw std::exception( "Yahoo!" );
}
private :
Resource1 resource1_;
};
// - Resource2
Resource2 resource2;
* This source code was highlighted with Source Code Highlighter .
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реА ++ (рд╕реА # рдХреЗ рд╡рд┐рдкрд░реАрдд) рдореЗрдВ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдм рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рд░реНрдорд┐рдд рдлрд╝реАрд▓реНрдб (рдпрд╛рдиреА, рд╕рдмрдЬреЗрдХреНрдЯ) рдХреЗ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд╣рд▓рд╛рдПрдВрдЧреЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
рд░рд┐рд╕реЛрд░реНрд╕ 1 рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреЙрд▓ рдЕрдкрдиреЗ рдЖрдк рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд░рд┐рд╕реЛрд░реНрд╕ рд▓реАрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
C # рдФрд░ C ++ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдРрд╕реЗ рдЕрдВрддрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрддрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред C ++ рдореЗрдВ, рдПрдХ рд╕рдВрд╕рд╛рдзрди рд╕рдм рдХреБрдЫ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рд╣реИрдВред C # рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд▓рд╛рдЧреВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЕрдХреНрд╕рд░ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рд╡рд╣ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдПрдХ рд╕рдВрдХрд▓рдХ рдХреА рдорджрдж рдХреЗ рдмрд┐рдирд╛, рдЗрд╕реЗ рдЕрдкрдиреЗ рджрдо рдкрд░ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╡реИрд╕реЗ, рд╣рд░реНрдм рд╕рдЯрд░ рдиреЗ рдЕрдкрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА:
"рд╕реА + +, рд╕реА # рдФрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдПрдХреНрд╕реЗрдкреНрд╢рди" ред
(****) рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрди рдиреЛрдЯреЛрдВ рдХреЗ рд╕рд╛рде рдорд┐рд▓ рдЧрдпрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рддрд░рд╣ рд╕реЗ рд╣реИред рд╡реЗ рдЕрдХреНрд╕рд░ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрдм, рдореЗрд░реЗ рдкрд╛рдардХреЛрдВ рдХреЛ рдЗрд╕рдХрд╛ рд╕рд╣реА рдЙрддреНрддрд░ рдкрддрд╛ рд╣реИ!
(*****) рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╕рдм рдХреБрдЫ рдХреЗрд╡рд▓ рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдкрд╡рд╛рджреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ "рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ" рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рд╕реБрд╕рдВрдЧрдд рдШрдЯрдирд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐
OutOfMemoryException рдпрд╛
ThreadAbortException ред рдпрд╣рд╛рдБ рд╕рдмреВрдд рдХреЗ рд▓рд┐рдП: "
рдереНрд░реЗрдб рдХреЗ рдЦрддрд░реЛрдВ рдкрд░ред рдПрдХ рд╡рд┐рдзрд┐ред "