C # ReSharper рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ


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

рд╕рдорд╕реНрдпрд╛


рдХрднреА-рдХрднреА рддреЗрдЬрд╝ рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рд╣рдо рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдЫрд╛рдБрдЯрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИред
рджрд▓рд┐рдпрд╛
public class DemoClass : IEquatable<DemoClass> { public string SecondProperty { get; set; } private bool fieldBool; public override int GetHashCode() { return base.GetHashCode(); } public string SomeProperty { get; set; } public void DoSomething() { } private string fieldString; public DemoClass(bool fieldBool, string fieldString) { this.fieldBool = fieldBool; this.fieldString = fieldString; } public static void DoSomethingStatic() { } public bool Equals(DemoClass other) { throw new NotImplementedException(); } } 


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЙрд░реНрдЯ рдХрд░реЗрдВ


рд▓реЗрдХрд┐рди, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, ReSharper рдореЗрдВ рдПрдХ рдХреЛрдб рд╕рдлрд╛рдИ рдЙрдкрдХрд░рдг рд╣реИред рдФрд░ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ Reorder Type Members рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдСрд░реНрдбрд░ рдХрд┐рдП рдЧрдП рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд▓рд╛рд╕ рдорд┐рд▓рддреА рд╣реИред
рдХреЗ рдмрд╛рдж
  public class DemoClass : IEquatable<DemoClass> { private bool fieldBool; private string fieldString; public DemoClass(bool fieldBool, string fieldString) { this.fieldBool = fieldBool; this.fieldString = fieldString; } public string SomeProperty { get; set; } public string SecondProperty { get; set; } public bool Equals(DemoClass other) { throw new NotImplementedException(); } public override int GetHashCode() { return base.GetHashCode(); } public void DoSomething() { } public static void DoSomethingStatic() { } } 


рдХрд╕реНрдЯрдо рдирд┐рдпрдо


рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЫрдБрдЯрд╛рдИ рд╣рдореЗрдВ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реЗ рдЕрд▓рдЧ рд╣реИ?
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, ReSharper рдЖрдкрдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рдпрдореЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
ReSharper рдкрд░ рдЬрд╛рдПрдВ -> рд╡рд┐рдХрд▓реНрдк -> рдХреЛрдб рд╕рдВрдкрд╛рджрди -> C # -> рд╕рджрд╕реНрдп рд▓реЗрдЖрдЙрдЯ рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдФрд░ рдХрд╕реНрдЯрдо рд▓реЗрдЖрдЙрдЯ рдЪрд╛рд▓реВ рдХрд░реЗрдВред
рд╣рдо XML рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ рдЬреЛ рдХреНрд░рдордмрджреНрдз рдХреНрд░рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг
 <Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns"> <Pattern> <!--static fields and constants--> <Entry> <Match> <Or Weight="100"> <Kind Is="constant"/> <And> <Kind Is="field"/> <Static/> </And> </Or> </Match> <Sort> <Kind Order="constant field"/> </Sort> </Entry> <Entry> ... </Entry> </Pattern> <Pattern> ... <Pattern> </Patterns> 


рдкреИрдЯрд░реНрди рддрддреНрд╡ рдПрдХ рдореВрд▓ рддрддреНрд╡ рдореЗрдВ рдЕрдкрдиреЗ рднреАрддрд░ рдХрдИ рдкреИрдЯрд░реНрди рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдХрдИ рдПрдВрдЯреНрд░реА рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд░рд╡реЗрд╢ рддрддреНрд╡ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдВрдЧреЗред рдкреИрдЯрд░реНрди рддрддреНрд╡ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХрд╛ рдХреНрд░рдо рддрддреНрд╡реЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдирд┐рд░реНрдорд╛рддрд╛, рд╡рд┐рдзрд┐рдпрд╛рдБ, рдЕрдиреНрдп рд╕рджрд╕реНрдпред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдирд┐рдпрдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдЙрджрд╛рд╣рд░рдг
 <?xml version="1.0" encoding="utf-8"?> <Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns"> <Pattern> <Entry> <Match> <Kind Is="constructor" /> </Match> </Entry> <Entry> <Match> <Kind Is="method" /> </Match> </Entry> <Entry /> </Pattern> </Patterns> 


рдкреНрд░рддреНрдпреЗрдХ рдПрдВрдЯреНрд░реА рддрддреНрд╡ рдореЗрдВ рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдореИрдЪ рдПрд▓рд┐рдореЗрдВрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╡рд╣ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдо рдЦреЛрдЬ рд░рд╣реЗ рд╣реИрдВред рд╣рдо рддрд╛рд░реНрдХрд┐рдХ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдЦреЛрдЬ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдирд┐рдпрдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛, рдФрд░, рдирд╣реАрдВ рдФрд░ рдСрдкрд░реЗрдВрдб:
рдУрдкреЗрд░рдВрдбрдЕрд░реНрде
<рддрд░рд╣ рд╣реИ = "..." />рдЗрдЬрд╝ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдХреНрд▓рд╛рд╕, рд╕реНрдЯреНрд░рдХреНрдЪрд░, рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдПрдирдо, рдбреЗрд▓реАрдЧреЗрдЯ, рдЯрд╛рдЗрдк, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░, рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░, рдкреНрд░реЙрдкрд░реНрдЯреА, рдЗрдВрдбреЗрдХреНрд╕рд░, рдореЗрдердб, рдСрдкрд░реЗрдЯрд░, рдлреАрд▓реНрдб, рдХрдВрдЯреАрдиреНрдпреВрдЕрд╕, рдЗрд╡реЗрдВрдЯ, рдореЗрдореНрдмрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
<рдирд╛рдо Is = "..." [IgnoreCase = "true / false"] />рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ
<HasAttribute CLRName = "..." [рд╡рдВрд╢ = "рд╕рд╣реА / рдЧрд▓рдд"] />CLRName рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ
<рдПрдХреНрд╕реЗрд╕ рд╣реИ = "..." />рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ, рд╕рдВрд░рдХреНрд╖рд┐рдд, рдЖрдВрддрд░рд┐рдХ, рд╕рдВрд░рдХреНрд╖рд┐рдд-рдЖрдВрддрд░рд┐рдХ, рдирд┐рдЬреА рд╣реЛ рд╕рдХрддреА рд╣реИ
<рд╕реНрдереИрддрд┐рдХ />
<рд╕рд╛рд░ />
<рдЖрднрд╛рд╕реА />
<рдУрд╡рд░рд░рд╛рдЗрдб />
<рдореБрд╣рд░рдмрдВрдж />
<Readonly />
<ImplementsInterface CLRName = "..." />CLRName рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ
<рд╣реИрдВрдбрд▓ />

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рддрддреНрд╡ рдореЗрдВ рд╕реЙрд░реНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╣реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рднреАрддрд░ рдкрд╛рдП рдЧрдП рд╕рджрд╕реНрдпреЛрдВ рдХреА рдЫрдВрдЯрд╛рдИ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рдХреНрд╖реЗрддреНрд░ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЦреЛрдЬрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрдХреНрд╖рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд╛рдо рд╕реЗ рднреА рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреИрдЯрд░реНрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг
  <Entry> <Match> <Or> <Kind Is="constant" /> <And> <Kind Is="field" /> <Static /> </And> </Or> </Match> <Sort> <Name /> </Sort> </Entry> 


рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХрдИ рдорд╛рдиреЛрдВ рд╕реЗ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдПрдХреНрд╕реЗрд╕ рд╕реНрддрд░ рдФрд░ рдирд╛рдо рджреНрд╡рд╛рд░рд╛ рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг
  <Entry> <Match> <Kind Is="method"/> </Match> <Sort> <Access Order="public internal protected-internal protected private" /> <Name/> </Sort> </Entry> 


рд╕рдореВрд╣


рд╕рдореВрд╣рди рднреА рд╕рдорд░реНрдерд┐рдд рд╣реИред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реНрдерд┐рд░ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд╛рдо рд╕реЗ рдЫрд╛рдБрдЯреЗрдВ рдФрд░ рдЙрдкрдпреБрдХреНрдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд▓рдкреЗрдЯреЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рд╕рдореВрд╣ рдХреЗ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд╕рд╛рде рджреЛ рдЕрд▓рдЧ рдПрдВрдЯреНрд░реА рддрддреНрд╡ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдЙрджрд╛рд╣рд░рдг
  <Entry> <Match> <And> <Kind Is="method" /> <Static/> </And> </Match> <Group Region="Static methods" /> </Entry> <Entry> <Match> <Kind Is="method" /> </Match> <Group Region="Instance methods" /> </Entry> 


рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐, рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдЬреЛ рдХреНрд▓рд╛рд╕ рдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдХреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдирд╛рдо рд╕реЗ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП? рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЙрджрд╛рд╣рд░рдг
  <Entry> <Match> <Kind Is="member" /> <ImplementsInterface/> </Match> <Sort> <ImplementsInterface/> </Sort> <Group> <ImplementsInterface Region="${ImplementsInterface} Members" /> </Group> </Entry> 


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЪрд░ $ {ImplementsInterface} рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдирд╛рдо рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреИрдЯрд░реНрди рддрддреНрд╡ RemoveAllRegions рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд) рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рд╕рдореВрд╣ рдмрдирд╛рддреЗ рд╕рдордп, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рднрд╛рд░


рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдПрдХ рд╢рд░реНрдд (рдореИрдЪ) рдПрдХ рд╕рд╛рде рдХрдИ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдорд┐рд▓рддреА рд╣реИ?
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рд╕рднреА рдирд┐рдЬреА рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдореВрд╣ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╕рд┐рд╡рд╛рдп рддрд░реАрдХреЛрдВ рдХреЗред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
рдЙрджрд╛рд╣рд░рдг
  <Entry> <Match> <Access Is="private" /> </Match> <Group Region="Private members" /> </Entry> <Entry> <Match> <Kind Is="method" /> </Match> <Group Region="All methods" /> </Entry> 


рд▓реЗрдХрд┐рди, рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рдЬреА рддрд░реАрдХрд╛ рд╣реИ, рддреЛ рдпрд╣ рджреЛрдиреЛрдВ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдирд┐рдпрдо рдкрд╣рд▓реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдирд┐рдЬреА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╡рд┐рдзрд┐рдпрд╛рдВ рджреВрд╕рд░реЗ рдирд┐рдпрдо рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрдПрдВрдЧреАред рдирддреАрдЬрддрди, рдЬрд┐рд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд┐рдЬреА рд╕рджрд╕реНрдп рд╣реЛрдВрдЧреЗ, рдЙрд╕рдореЗрдВ рдирд┐рдЬреА рддрд░реАрдХреЗ рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред
рдкреНрд░рддреНрдпреЗрдХ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдСрдкрд░реЗрдВрдб 1 рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рдЬрди рдмрд┐рдВрджреБ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдореЗрдВ рдПрдХ рдСрдкрд░реЗрдВрдб рд╣реЛрддрд╛ рд╣реИ: <Access Is = "private" /> рдФрд░ <Kind Is = "method" />, рдХреНрд░рдорд╢рдГред рдпрджрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рджреВрд╕рд░рд╛ рдирд┐рдпрдо рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рд╣рдо рдСрдкрд░реЗрдВрдб рдкрд░ рднрд╛рд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг
  <Entry> <Match> <Access Is="private" /> </Match> <Group Region="Private members" /> </Entry> <Entry> <Match> <Kind Is="method" Weight="5"/> </Match> <Group Region="All methods" /> </Entry> 


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рджреВрд╕рд░реА рдШрдЯрдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рдЬрди рд╣реЛрдЧрд╛, рдФрд░ рд╕рдм рдХреБрдЫ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЗрд░рд╛рджрд╛ рдерд╛ред

рдкреИрдЯрд░реНрди


рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВрдиреЗ рдкреИрдЯрд░реНрди рддрддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА, рдЗрд╕рдореЗрдВ рдПрдХ рдореИрдЪ рддрддреНрд╡ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рддрддреНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреИрдЯрд░реНрди рд╡рд╛рд▓реЗ рдирд┐рдпрдо рдХрд╣рд╛рдВ рдХрд╛рд░реНрдп рдХрд░реЗрдВрдЧреЗред
рдФрд░ рдЕрдм, рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдФрд░ рдЫрдВрдЯрд╛рдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдо рдПрдХ рдЕрд▓рдЧ рдкреИрдЯрд░реНрди рддрддреНрд╡ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг
  <Pattern> <Match> <Kind Is="interface" /> </Match> ... </Pattern> 


рджрд┐рдП рдЧрдП рдкреИрдЯрд░реНрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдирд┐рдпрдо рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдВрдЧреЗред

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


рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ ReSharper рдХреА рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдВред
рдпрд╣ рдкреЛрд╕реНрдЯ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╕рдВрдкреВрд░реНрдг рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реЛрдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ:

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


All Articles