рд░реЛрд╕рд▓рд┐рди рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдХреЛрдб рдлрд╛рд╕реНрдЯрд░ рд▓рд┐рдЦреЗрдВ

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



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



рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдк рдФрд░ рднреА рдХреАрдбрд╝реЗ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ?


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

рдПрдХ NuGet рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ FxCop рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  1. рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк Visual Studio 2017 рд╕рдВрд╕реНрдХрд░рдг 15.8 рдпрд╛ рдирдП рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ Microsoft.CodeAnalysis.FxCopAnalyzers рдХрд╛ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЪреБрдиреЗрдВред
  2. рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ UI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред



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



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



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

  • рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ "i" рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЧрдВрднреАрд░рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
  • "!" рдПрдХ рддреНрд░рд┐рдХреЛрдг рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдХреА рдЧрдВрднреАрд░рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
  • рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ "x" рддреНрд░реБрдЯрд┐ рдХреА рдЧрдВрднреАрд░рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
  • рд╣рд▓реНрдХреЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ "i" рдЫрд┐рдкреЗ рдХреА рдЧрдВрднреАрд░рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
  • рдПрдХ рд╕рд░реНрдХрд▓ рдореЗрдВ "diagn" рдПрдХ рджрдмреА рд╣реБрдИ рдиреИрджрд╛рдирд┐рдХ тАЛтАЛрдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ



рдЖрдк рддрдм рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╕реЗ рдирд┐рдпрдо рд╕реЗрдЯ рдЧрдВрднреАрд░рддрд╛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ, рдирд┐рд░реНрднрд░рддрд╛> рдПрдирд╛рд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред рдЙрд╕ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рдирд┐рдпрдо рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдк рдЧрдВрднреАрд░рддрд╛ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдирд┐рдпрдо рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╕реЗрдЯ рдирд┐рдпрдо рд╕реЗрдЯ рдЧрдВрднреАрд░рддрд╛ рдФрд░ рдлреНрд▓рд╛рдИ-рдЖрдЙрдЯ рдореЗрдиреВ рдореЗрдВ, рдЧрдВрднреАрд░рддрд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред



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



рдЕрдм рдЬрдм рдЖрдк рд╕рдордЭ рдЧрдП рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмреЗрд╣рддрд░ рдХреЛрдб рддреЗрдЬреА рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ!

рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди:


рдкреНрд░рд╢реНрди: рдпрд╣ рдЪреЗрддрд╛рд╡рдиреА рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ: тАЬрд░рди рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг FxCop analyzers рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдЪрд▓рддрд╛ рд╣реИред FxCop analyzers рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://aka.ms/fxcopanalyzers рджреЗрдЦреЗрдВред " рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?

A: FxCop рдХреЛрдб рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдЗрдВрдЬрди рд╣реИ рдЬреЛ рд▓рдЧрднрдЧ рдПрдХ рджрд╢рдХ рддрдХ рд░реЛрдЬрд▓рд┐рди рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛ (рдЬреИрд╕реЗ рдХрд┐ рд░реЛрд╕рд▓рд┐рди рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛), рд╣рдо рд░реЛрд╕рд▓рд┐рди рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рддрдХрдиреАрдХ рдХреЛ рднреА рдЖрдЧреЗ рдмрдврд╝рд╛ рд░рд╣реЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдпрд╣ .NET рдХрдВрдкрд╛рдЗрд▓рд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЧрд▓рддреА рдХреА рд╣реИред

рдкреНрд░рд╢реНрди: FxCop analyzers рдФрд░ рд╡рд┐рд░рд╛рд╕рдд FxCop рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реИ?

A: FxCop рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдФрд░ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╡рд┐рд░рд╛рд╕рдд FxCop рдПрдХ рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╣реИ рдФрд░ рдмрд┐рд▓реНрдб рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ рд░реЛрд╕рд▓рд┐рди рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдмрдирд╛рдо рд╕реНрдерд┐рд░ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдФрд░ FxCop analyzers рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди ред

рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рдореИрдВ рдХрд╕реНрдЯрдо рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ?

A: рдмрд┐рд▓реНрдХреБрд▓! рдХреИрд╕реЗ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рдореБрдЭреЗ рдХреЛрдб рд╕реНрдЯрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд░реЛрдЬрд▓рд┐рди рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдпрд╛ .editorconfig рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдП: рд░реЛрд╕рд▓рд┐рди рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдФрд░ .editorconfig рдлрд╛рдЗрд▓реЗрдВ рд╣рд╛рде рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред рдЬрдм рдЖрдк рдПрдХ .editorconfig рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпрд╛ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рд╡рд┐рдХрд▓реНрдк рдкреГрд╖реНрда рдкрд░ рдХреЛрдб рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Roslyn analyzers рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рдПрдирд╛рд▓рд╛рдЗрдЬрд░ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг (рд╕реАрдЖрдИ) рдмрдирд╛рддрд╛ рд╣реИ?

рдП: рд╣рд╛рдБ, рдПрдирдЬреАрдЧреЗрдЯ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рд╕реАрдЖрдИ рдмрд┐рд▓реНрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░рд╢реНрди: рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдпрд╛ рд░рд┐рдкреЛрд░реНрдЯ рдмрдЧ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд╣рд╛рдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

A: рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ GitHub рдкрд░ Roslyn рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles