рд░рд┐рд╕реНрдкреЗрд░ 7: рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рд░реА

ReSharper7 рджреЛ рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рд░реЗрд╕реНрдкрд░ 7.0 рдХреА рд░рд┐рд╣рд╛рдИ рдХреА рдШреЛрд╖рдгрд╛ рдХреА , рдХреЗрд╡рд▓ рдЙрди рдирдП рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЬреЛ рдЗрд╕ рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рдереЗред
рдЖрдЬ, MSDN рдФрд░ TechNet рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рдкрд╛рд╕ Visual Studio 2012 рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ ReSharper 7.0 рдХреА рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрд╡рд╕рд░ рд╣реИред

рд▓реЗрдЦ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ (рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛):

рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2012



рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо



рдХреЛрдб рдЬрдирд░реЗрд╢рди



INotifyPropertyChanged



рдирдИ рдкрд░рд╡рд░рд┐рд╢



рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг



ReSharper SDK рдореЗрдВ рдирдИ рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди




рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2012


рдирдП рд░реЗрд╕рдкреЗрд░ рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ VIsual Studio 2012 рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдФрд░ рдкрд╛рд░рджрд░реНрд╢реА рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ред рдпрд╣ рд╕рдорд░реНрдерди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдирдИ рддрдХрдиреАрдХреЛрдВ рдХреЗ рдирдП рдкрд╣рд▓реБрдУрдВ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рдРрд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рдЖрдП рд╣реИрдВред

рдереАрдо рд╕рдорд░реНрдерди


рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2012 "рдереАрдо" рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рджреЛ рд╡рд┐рд╖рдпреЛрдВ - рд▓рд╛рдЗрдЯ рдФрд░ рдбрд╛рд░реНрдХ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рд╣рдордиреЗ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╛рдордВрдЬрд╕реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рд╕рднреА рдореЗрдиреВ, рдЖрдЗрдХрди рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд░реЗрд╕реНрдкрд░ рдореЗрдВ рджреЛрдиреЛрдВ рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИред



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



рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдЙрди рдЖрдЗрдХрди рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдореЗрдиреВ, рд╡рд┐рдВрдбреЛ рдЖрджрд┐ рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛрдВрдЧреЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЗрдХрди - рдкреНрд░рдХрд╛рд░, рдЧреБрдг, рдЖрджрд┐ред рдЖрдЗрдХрдиреЛрдВ рдХреЛ ReSharper рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ | рд╡рд┐рдХрд▓реНрдк | рдЬрдирд░рд▓ред рд╣рд╛рдВ, рдФрд░ рд╣рдордиреЗ рдЕрдкрдиреЗ рдореВрд▓ рдЖрдЗрдХрдиреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рдХрд┐рдпрд╛ рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ


VS2012 рдореЗрдВ, Microsoft рдиреЗ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЛрдбрд┐рдВрдЧ (ASL) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛, рдЬреЛ рдХрд┐ рдУрдкрди рд╣реЛрдиреЗ рдкрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рднрд╛рд░ рд╕реЗ рдкрд╣рд▓реЗ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

7 рд╡реЗрдВ рд░реЗрд╕рдкреЗрд░ рдореЗрдВ, рд╣рдордиреЗ рдПрдПрд╕рдПрд▓ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╣рдо рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ - рдЗрд╕рд▓рд┐рдП рдЕрдм рдЖрдк рддреБрд░рдВрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рд░рд┐рдЪрд╛рд░реНрдкрд░ рдХреА рдХрд╛рд░реНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмрдврд╝реА рд╣реБрдИ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, Visual Studio 2010 рдФрд░ ReSharper 6 рдХреЗ рд╕рд╛рде рдЦреБрд▓рдиреЗ рдкрд░ 300 рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╡рд╛рд▓реЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ 5 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред 12 рд╕реЗрдХрдВрдбред, рдФрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдФрд░ рд░реАрд╢рд░ 7 рдХреЗ рд╕рд╛рде - рдХреЗрд╡рд▓ 1 рдорд┐рдирдЯред 17 рд╕реЗрдХрдВрдб

рддреНрд╡рд░рд┐рдд рд▓реЙрдиреНрдЪ


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



рдЯреИрдм рдХрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдХрд░реЗрдВ


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



Resharper рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЯреИрдм рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ Go To Type / Member / File / Declaration рдХреЗ рд╕рд╛рде-рд╕рд╛рде Find Usages рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдВрдбреЛ рдореЗрдВред

рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдХрд░реНрддрд╛


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



рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЦреЛрдЬрдХрд░реНрддрд╛


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



рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдЧреНрд░рд╛рдл


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



рд╡рд┐рдВрдбреЛрдЬ рд░рдирдЯрд╛рдЗрдо


рд╡рд┐рдВрдбреЛрдЬ 8 рдФрд░ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ 2012 рдХреА рдЖрдЧрд╛рдореА рд░рд┐рд▓реАрдЬрд╝ рд╣рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬрд╝ рд░рдирдЯрд╛рдЗрдо (рдпрд╛ рд╢реЙрд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирдЖрд░рдЯреА) рдирд╛рдордХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЙрдбрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЪреВрдВрдХрд┐ WinRT рдкрд░ рд╡рд┐рдХрд╛рд╕ рдЙрди рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐ Resharper рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (C #, VB.NET, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ), рд╣рдордиреЗ ResRper рдореЗрдВ WinRT рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛ рд╣реИред

C #, VB.NET рдФрд░ XAML


Resharper C # / VB.NET рдФрд░ XAML рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред WinRT рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдмрдирд╛рдИ рдЧрдИ рдереАрдВ:


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ


C # / VB.NET WinRT рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬреЛ WPF рдФрд░ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдореЙрдбрд▓ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ (WinJS рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ WinRT рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдореЙрдбрд▓ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, Resharper рдЗрд╕реЗ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:


рдареАрдХ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, C #, VB.NET, XAML, HTML, CSS рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ WinRT рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред

рдХреЛрдб рдЬрдирд░реЗрд╢рди


рдпрджрд┐ Resharper рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдк-рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдереА рдХрд┐ рдХреМрди рдЕрдзрд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рддрд╛ рд╣реИ рдФрд░ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЬреЗрдирд░реЗрдЯ рддрдВрддреНрд░ рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рд╡рд┐рдЬреЗрддрд╛ рд╣реЛрдЧрд╛ред рдФрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдирдП Resharper рдореЗрдВ, рд╣рдордиреЗ рдЗрд╕ рддрдВрддреНрд░ рдореЗрдВ рдХрдИ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдФрд░ рд╕реБрдзрд╛рд░ рдЬреЛрдбрд╝реЗ рд╣реИрдВред

рдЖрдВрд╢рд┐рдХ рд╡рд┐рдзрд┐ рдкреАрдврд╝реА


рдХрдИ рдХреЛрдб рдЬрдирд░реЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ partial рдХрдХреНрд╖рд╛рдУрдВ рд╕реЗ рдпреБрдХреНрдд рдХреЛрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрд╛рдж рдореЗрдВ рдЙрддреНрдкрдиреНрди рдШрдЯрдХреЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рд╕рдХреЗрдВ рдпрд╛ рдкреВрд░рдХ рдХрд░ рд╕рдХреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдХрд╛рдИ рд╡рд░реНрдЧреЛрдВ рдХреЛ partial рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдЗрдХрд╛рдИ рдврд╛рдВрдЪрд╛ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред

Resharper рдЕрдм рдЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдВрд╢рд┐рдХ рддрд░реАрдХреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдкреАрдврд╝реА рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдПрдХ partial рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдПрдВ рдФрд░ Generate | рдЖрдВрд╢рд┐рдХ рддрд░реАрдХреЗ :



рдЕрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:



... рдФрд░ рд╕рднреА рдЪрдпрдирд┐рдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЪрдпрдирд┐рдд рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛:



рд╕рдорд╛рдирддрд╛ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░


рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, рд╣рдорд╛рд░реЗ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрди рддрдВрддреНрд░реЛрдВ рдХреЛ рд╡рд┐рдирд┐рдпрдорд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рддреБрд▓рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдЬреЗрдирд░реЗрдЯ рдЗрдХреНрд╡рд┐рдЯреА рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рддреБрд▓рдирд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗ:



рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рд╡рд┐рдХрд▓реНрдк рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рд╢рд░реНрдд рдЬреЛ рдХрд┐ Equals() рдорд┐рд▓рд╛рди Equals() рд╡рд┐рдзрд┐ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рддреА рд╣реИ, рдЙрд╕реЗ рдирд┐рдореНрди рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рд╕рдорд╛рдирддрд╛ рддреБрд▓рдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ


рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЗрдирд▓рд╛рдЗрди рддреБрд▓рдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирдпрд╛ рд░реЗрд╕реНрдкрд░ рдПрдХ рдирдпрд╛ рдЬрдирд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЬреЗрдирд░реЗрдЯ рдЗрдХреНрд╡реЗрд▓рд┐рдЯреА рдХрдореНрдкреЗрд░рд┐рдЬрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ IEqualityComparer<T> рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреБрд▓рдирд╛ рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрднреА-рдХрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ Person рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджреЛ рдЧреБрдг рд╣реИрдВред рд╣рдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╣рддреЗ рд╣реИрдВ:



... рдФрд░, рдЙрди рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЬрд┐рди рдкрд░ рд╣рдо рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, Person рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрддреНрдкрдиреНрди рдирд┐рдЬреА рдиреЗрд╕реНрдЯреЗрдб рд╡рд░реНрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:



рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рд╕реНрдерд┐рд░ рдЙрджрд╛рд╣рд░рдг рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ:



рд╕рдорд░реНрдерди INotifyPropertyChanged


рдпрджрд┐ рдЖрдкрдХреА рдХрдХреНрд╖рд╛ INotifyPropertyChanged рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ рдпрд╛ рдЗрд╕ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ INotifyPropertyChanged рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд┐рдЬрд╝реНрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ NotificationObject ), рддреЛ Generate Properties рдХреНрд░рд┐рдпрд╛ рдЖрдкрдХреЛ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧреБрдг рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░реЗрдЧреА:



INotifyPropertyChanged


рд╡рд┐рдВрдбреЛрдЬ рдлреЙрд░реНрдо рдХреЗ рд╕рдордп рд╕реЗ, INotifyPropertyChanged рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рд╕рднреА рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ INotifyPropertyChanged рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдпрд╣ UI рд╣реИ)ред рдкрд░рд┐рд╡рд░реНрддрди рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдЬ рдХрдИ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ (рдбрдмреНрд▓реНрдпреВрдкреАрдПрдл, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ) рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЕрдХреНрд╕рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдирдИ рд░рд┐рд▓реАрдЬ рдореЗрдВ, рд╣рдордиреЗ рдЗрд╕реЗ рдХрд┐рдпрд╛ред

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк INotifyPropertyChanged рдШреЛрд╖рдгрд╛ рдХреЛ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ Resharper рдЖрдкрдХреЛ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛:



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



рдпрджрд┐ рдЖрдк рдЧреБрдгреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬрдирд░реЗрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХрдорд╛рдВрдб рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд░реЗрд╕реНрдкрд░ рдЖрдкрдХреЛ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдВрдЧреЗ:



рдЖрдИрдбреА рдЯреНрд░реИрдХрд┐рдВрдЧ


рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ Resharper рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдЧреБрдгреЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдПрдХ рдЧрд▓рддреА рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рдЬреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП, рддреЛ Resharper рддреБрд░рдВрдд рдПрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛:



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



рд╡рд┐рднрд┐рдиреНрди рдЪреМрдЦрдЯреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди


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

рдкреБрдирд░реНрд╡рд┐рдХреНрд░реЗрддрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреМрдЦрдЯреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ:


рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рд┐рдЬрд╝реНрдо рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ NotificationObject рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЬрдм рдЖрдк рдЧреБрдг рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ RaisePropertyChanged рдкрджреНрдзрддрд┐ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ RaisePropertyChanged рдЬрд┐рд╕реЗ рдЖрдк рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред



рдпрджрд┐ рдЖрдк рд▓реИрдореНрдмреНрдбрд╛-рдЙрдиреНрдореБрдЦ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдЧреБрдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ:



рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдпреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд▓реНрдк рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ:




рдирдИ рдкрд░рд╡рд░рд┐рд╢


Resharper рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рд╖реНрдард╛ рд╣реИ рдЬреЛ рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдФрд░ 7 рд╡реАрдВ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ, рд╣рдо рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рджреЛ рдирдП рд░рд┐рдлреИрдХреНрдЯреЛрд░рд┐рдпреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рдХреА рдХреГрдкрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред


рдЕрд░реНрдХ рд╡рд░реНрдЧ


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

рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ Person рд╡рд░реНрдЧ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкрддреЗ рд╡рд╛рд▓реЗ рдлрд╝реАрд▓реНрдб рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдореЗрдВ рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛:



рд╡рд┐рднрд┐рдиреНрди рдкрддрд╛ рдЧреБрдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдВрджрд░реНрдн рдореЗрдиреВ рд╕реЗ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдП рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╕реЗ рджреЛрдиреЛрдВ рдХреЛ рд░реАрдлреИрдХреНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрди рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдЗрд╕ рдореЗрдиреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:



рдПрдХ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЙрди рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (neologism?) рдФрд░ рд╕рд╛рде рд╣реА рдЙрд╕ рдирдП рд╡рд░реНрдЧ рдФрд░ рдЪрд░ рдХрд╛ рдирд╛рдо рднреА рджреЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдг "рдЕрднрд┐рднрд╛рд╡рдХ" рдореЗрдВ рд╣реЛрдЧрд╛:



рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рднреА рдХрдИ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЦреАрдВрдЪреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ:



рд╡рд┐рдХрд▓реНрдк рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИрдВ:


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



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



... рдФрд░ рдирд┐рдореНрди рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:



рдФрд░ рдЕрдВрдд рдореЗрдВ, рдРрд╕реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рд╕рдВрдШрд░реНрд╖ рд╣реЛрдЧрд╛: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ private рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдЬреЛ рдЕрднреА рднреА рдореВрд▓ рд╡рд░реНрдЧ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, Resharper рдЖрдкрдХреЛ рд╕реНрдЯреЙрдк рдЖрдЗрдХрди рджрд┐рдЦрд╛рдПрдЧрд╛ рдФрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрдИ рд╕рдорд╛рдзрд╛рди рдкреЗрд╢ рдХрд░реЗрдЧрд╛:



рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:


рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рд╕рдордп рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗрд╡рд▓ C # рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред VB.NET рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди Resharper рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддрд╛ рд╣реИред


рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рдирд╛


рд╣рдо рд╕рднреА рдХреЗ рдкрд╛рд╕ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдереА рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдерд╛, рдФрд░ рдлрд┐рд░ рд╣рдо рдПрдХ рдФрд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдирд╛:



рдКрдкрд░ рджрд┐рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рд╡рд╛рдкрд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ Tuple<Person,bool > рдФрд░ Transform Out Parameters рдмрд┐рд▓реНрдХреБрд▓ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдмрд╕ рдЗрд╕реЗ out рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХрд╣реЗрдВ ...



... рдФрд░ рдЖрдкрдХреЛ рдПрдХ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдорд┐рд▓реЗрдЧрд╛, рдЬреЛ рдЖрдкрдХреЛ рд╕рднреА рдореМрдЬреВрджрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджрд┐рдЦрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рджреЗрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЯреБрдк рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:



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



рдпрд╣ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ C # рдФрд░ VB.NET рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЪреВрдВрдХрд┐ Tuple рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 4 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ void рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдПрдХрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЖрдкрдХреЛ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЯрдкрд▓ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЖрдкрдХреЛ out рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕ рдЯрдкрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг


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

рдпрд╣рд╛рдВ 7 рд╡реЗрдВ рд░реЗрд╕реНрдкрд░ рдореЗрдВ рдирдИ рдкрд░реАрдХреНрд╖рдг рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЕрд╡рд▓реЛрдХрди рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЬреИрд╕реНрдореАрди


Resharper рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рд╣рдордиреЗ Qunit рдкрд░реАрдХреНрд╖рдг рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ред рдЙрд╕реА рд░рд┐рд▓реАрдЬ рдореЗрдВ, рд╣рдордиреЗ рдЬреИрд╕реНрдореАрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рд╛, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреАрдбреАрдбреА рдлреНрд░реЗрдорд╡рд░реНрдХред



рдХрд╣реАрдВ рдФрд░, рдЬреИрд╕реНрдореАрди рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдкрд░реАрдХреНрд╖рдг рд░рди рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ:



PhantomJS


рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, ReSharper 7 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП - рдлреИрдВрдЯрдордЬрд╕ - рд╡реЗрдмрдХреЗрдЯ рдЗрдВрдЬрди рдХреЗ рдХрдВрд╕реЛрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ ( рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ | рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреЗрд╕реНрдЯ рдЯреИрдм) рдХреЛ рдЦреЛрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЙрд╕ рд░рд╛рд╕реНрддреЗ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ PhantomJio рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:



рдЕрдм рд╕рднреА рдкреВрд░реНрдг рдХрд┐рдП рдЧрдП рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдлреИрдВрдЯрдордЬрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧреАред

NUnit рдореЗрдВ рд╕реБрдзрд╛рд░


NUnit рдореЗрдВ TestCaseSource рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЖрдкрдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ:



рдЪреВрдБрдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рд╕реЗ рдПрдХ рдЪрд░ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИ, Resharper рднреА рд╡реИрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдирд╛рдо рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ:



... рдФрд░ рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:



рдЕрдиреНрдп рдЪреМрдЦрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди


рдпрджрд┐ рдЖрдк рдПрдХ рдкрд░реАрдХреНрд╖рдг рдврд╛рдБрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ Resharper "рдореВрд▓ рд░реВрдк рд╕реЗ" рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдкреНрд▓рдЧрдЗрди рд▓реЗрдЦрдХ рд╡рд┐рднрд┐рдиреНрди рдкрд░реАрдХреНрд╖рдг рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рддрд┐рдерд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреБрдирд░реНрд╡рд┐рдХреНрд░реЗрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдореЗрдВ рдПрдЧреБрдиреЗрдЯ , рдЧреИрд▓рд┐рдпреЛ / рдПрдордмреАрдпреВрдиреАрдЯ , рдПрдХреНрд╕рдпреВрдирд┐рдЯ , рдФрд░ рдПрдордПрд╕рдкреАрдИрд╕реА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

ReSharper SDK рдореЗрдВ рдирдИ рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди


ReSharper SDK рдХреА рдкрд╣рд▓реА рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ, рд╣рдореЗрдВ Resharper рдореЗрдВ рдирдИ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдореЗрд╢рд╛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд░реНрдерди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдереА, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирдИ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓реЗрдХреНрд╕рд░реНрд╕ рдФрд░ рдкрд╛рд░реНрд╕рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╕реЗрдЯ рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдЙрдкрдХрд░рдг


Resharper рдореЗрдВ рдирдИ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЗрди рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП lexers рдФрд░ parsers рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╕рд╛рде рд╣реА Resharper API рдХреЛ рдЗрди рдЙрддреНрдкрдиреНрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдмрд╛рдж рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ SDK рдореЗрдВ Tools рдирд╛рдордХ рдПрдХ рдлреЛрд▓реНрдбрд░ рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдпреЛрдЧреА рдЯреВрд▓ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:


рдЙрджрд╛рд╣рд░рдг


рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЯреВрд▓ рдореЗрдВ рд╕реЗ рдПрдХ, рдкрд╛рд░реНрд╕рд░рдЧреЗрди , рдкрд╛рд░реНрд╕рд░ (рдкреАрдПрд╕рдЖрдИ рдлрд╛рдЗрд▓) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрд╡рдпрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рдкрддреНрдерд░ рд╕реЗ рджреЛ рдкрдХреНрд╖рд┐рдпреЛрдВ рдХреЛ рдорд╛рд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдПрдХ рдкреНрд▓рдЧ-рдЗрди рдЬреЛ рдХрд┐ рдкреАрдПрд╕рдЖрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреА рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:



рдирд┐рд╖реНрдХрд░реНрд╖


рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, Resharper 7 рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:





рдЖрдк рд╡рд┐рддрд░рдг рдХрд┐рдЯ рдХреЛ 30-рджрд┐рди рдХреА рдирд┐рдГрд╢реБрд▓реНрдХ рдЕрд╡рдзрд┐ рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдХреЗ рд░реАрд╢рд░ 7 рдХреЛ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдУрдкрди-рд╕реЛрд░реНрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореБрдлреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╢реИрдХреНрд╖рд┐рдХ рд╕рдВрд╕реНрдерд╛рди рдореБрдлреНрдд рдХрдХреНрд╖рд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles