рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рддрд░реАрдХреЗ: рдкрд╛рдЧрд▓рдкрди рдмрдВрдж рдХрд░реЛ!

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

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

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

рдЖрдЗрдП рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВ, рдмрд╕ рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдУрдУрдкреА рдХреНрдпрд╛ рд╣реИ (рдЕрд░реНрдерд╛рддреН, рдЗрд╕рдХрд╛ рдПрдХ рдкрд╣рд▓реВ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рд╣реИ )ред

public class Cat { public float CuddlynessFactor { get; private set; } public Cat(float cuddlynessFactor) { this.CuddlynessFactor = cuddlynessFactor; } public void Purr() { Console.WriteLine("Purr!"); } public void HitTheWall() { Console.WriteLine("Fu**ing meow!!!"); } } public class Dog { public float TeethSharpness { get; private set; }; public Dog(float teethSharpness) { this.TeethSharpness = teethSharpness; } public void Bark() { Console.WriteLine("Bark!"); } public void Bite(Human target) { target.Leg.DoDamage(DamageLevel.Substantial); } } 


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

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

 public static class Transmogrificator { public static Cat DogToCat(Dog dog) { return new Cat(Math.Sqrt(dog.TeethSharpness) * 42); } } 


рджреЗрдЦрд╛! рдирдИ рдХрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдХреБрддреНрддреЗ рдХреЛ рдПрдХ рдмрд┐рд▓реНрд▓реА рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ!

 public void Test() { var uberDog = new Dog(float.Infinity); var testHuman = new Human(); uberDog.Bark(); uberDog.Bite(testHuman); var cat = Transmogrificator.DogToCat(dog); cat.HitTheWall(); } 


рдорд┐рдард╛рдИ! рдФрд░ рдЕрдм рд╣рдо рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ Microsoft рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ .NET рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд▓реНрдкрдирд╛ рдХреА рдЧрдИ рд╣реИ, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рд▓рдХреНрд╖реНрдп рд╡рд░реНрдЧ рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЪрд╛рд╣рд┐рдП (рдпрд╛, рдХрдо рд╕реЗ рдХрдо, рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдФрд░ рд╡рд╛рдИред MSDN:

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


рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рддреЛ рд▓реЗрдЦрдХ рд╣рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ, рдЬрдм рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ ред

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЕрдЧрд░ рд╣рдо рдбреЙрдЧрдЯреЛрдХреИрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐ рдмрдирд╛рдХрд░ рдЕрдкрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

 public void Test() { var uberDog = new Dog(float.Infinity); var testHuman = new Human(); uberDog.Bark(); uberDog.Bite(testHuman); var cat = dog.DogToCat(); cat.HitTheWall(); } 


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

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

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

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


All Articles