рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЦрддрд░реЛрдВ рдкрд░

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

рдкрд╣рд▓реЗ рдЕрдВрддрд░ рдХреЗ рд▓рд┐рдП (рдЬреЛ рдХрдо рд╕реЗ рдХрдо рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ), рдЗрд╕рдореЗрдВ рдпрд╣ рддрдереНрдп рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╣рдореЗрд╢рд╛ рдкреНрд░рдмрдВрдзрд┐рдд рд╣реАрдк рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдЯреИрдХ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░рдмрдВрдзрд┐рдд рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рдмрд╣реБрдд рдХреБрдЫ, рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рджрд╕реНрдп рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореБрд╢реНрдХрд┐рд▓ рд╡рд┐рджреЗрд╢реА рд╕реА # рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЬреИрд╕реЗ рдХрд┐ рдХреНрд▓реЛрдЬрд░ (*)ред

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


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

рдЖрдЗрдП рдЗрди рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рджреЗрдЦреЗрдВред

1. рд╡рд╕реНрддреБ рдЧреБрдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрд░рд╕реНрдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░



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

struct Mutable
{
public Mutable( int x, int y)
: this ()
{
X = x;
Y = y;
}
public void IncrementX() { X++; }
public int X { get ; private set ; }
public int Y { get ; set ; }
}
class A
{
public A() { Mutable = new Mutable(x: 5, y: 5); }
public Mutable Mutable { get ; private set ; }
}


* This source code was highlighted with Source Code Highlighter .


рдЕрдм рддрдХ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЗрдП рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ:

A a = new A();
a.Mutable.Y++;


* This source code was highlighted with Source Code Highlighter .


рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ ( a.utable.Y ++;) C # рднрд╛рд╖рд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЧрд▓рдд рд╣реИред рдЪреВрдБрдХрд┐ рдПрдХ рд╣реА рдирд╛рдо рдХреА рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рд▓реМрдЯрдиреЗ рдкрд░ рдореНрдпреВрдЯреЗрдмрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдореВрд▓реНрдп рдХреА рдирдХрд▓ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрдХрд▓рди рдЪрд░рдг рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдХрд▓рдХ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдЕрд╕реНрдерд╛рдпреА рд╡рд╕реНрддреБ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдЕрдЪреНрдЫрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реИ: " рддреНрд░реБрдЯрд┐ 161612: 'рдХреЗ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛' System.Collections.Generic.IList <MutableValueTypes.Mutable> .this [int] 'рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЪрд░ рдирд╣реАрдВ рд╣реИ "ред рд╣рд░ рдХреЛрдИ рдЬреЛ C ++ рднрд╛рд╖рд╛ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдкрд░рд┐рдЪрд┐рдд рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛рдлреА рд╕рдордЭ рдореЗрдВ рдЖрдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдХреА рдЗрд╕ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╣рдо рдПрдХ рдорд╛рди рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХрд┐ рдПрд▓-рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИред

рдпрджреНрдпрдкрд┐ рд╕рдВрдХрд▓рдХ ++ рд╕рдВрдЪрд╛рд▓рдХ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдЙрд╕реЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдп рд╡рд░реНрддрдорд╛рди рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЪрд╛рд╣реЗ рд╡рд╣ рдЗрд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдФрд░ рдпрджреНрдпрдкрд┐ рд╣рдо рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рд╡рд╛рдИ рд╕рдВрдкрддреНрддрд┐ рдХреЗ ++ рдСрдкрд░реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдПрдХреНрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдЗрдВрдХреНрд░реАрдореЗрдВрдЯрдПрдХреНрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

Console .WriteLine( " Mutable.X: {0}" , a.Mutable.X);
a.Mutable.IncrementX();
Console .WriteLine( "Mutable.X IncrementX(): {0}" , a.Mutable.X);


* This source code was highlighted with Source Code Highlighter .


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

рдореВрд▓ рдореВрд▓реНрдп Mutable.X: 5

IncrementX (): 5 рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж Mutable.X

"рд╣рдореНрдо ... рдЕрд▓реМрдХрд┐рдХ рдХреБрдЫ рднреА рдирд╣реАрдВ," рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рд╕рд╣реА рд╣реЛрдВрдЧреЗ ... рдЬрдм рддрдХ рд╣рдо рдЕрдиреНрдп, рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓реЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред

2. рдкрд░рд╕реНрдкрд░ рд╕рд╛рд░реНрдердХ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрдХ



рдЖрдЗрдП рдХрдХреНрд╖рд╛ B рдХреЛ рджреЗрдЦреЗрдВ , рдЬреЛ рд╣рдорд╛рд░реЗ рдкрдардиреАрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реА рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЙрддреНрдкрд░рд┐рд╡рд░реНрддреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

class B
{
public readonly Mutable M = new Mutable(x: 5, y: 5);
}


* This source code was highlighted with Source Code Highlighter .


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

B b = new B();
Console .WriteLine( " MX: {0}" , bMX);
bMIncrementX();
bMIncrementX();
bMIncrementX();
Console .WriteLine( "MX IncrementX: {0}" , bMX);


* This source code was highlighted with Source Code Highlighter .


рддреЛ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЖрдЙрдЯрдкреБрдЯ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? 8? (рдореБрдЭреЗ рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рдВрдкрддреНрддрд┐ X рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп 5 рд╣реИ, рдФрд░ 5 + 3, рдЬреИрд╕рд╛ рдХрд┐ рдЬреНрдЮрд╛рдд рд╣реИ, 8 рдХреЗ рдмрд░рд╛рдмрд░; 7 рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди, рдЕрдлрд╕реЛрд╕, рдпрд╣ рдЙрддрдирд╛ рд╣реА рдирд┐рдХрд▓рд╛ рдЬрд┐рддрдирд╛ 8) рдпрд╛, рд╢рд╛рдпрдж -8? рдПрдХ рдЪреБрдЯрдХреБрд▓рд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдо рдПрдХ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд░ рдмрд╛рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЙрддреНрддрд░ 8 рдХрд╛рдлреА рддрд╛рд░реНрдХрд┐рдХ рд▓рдЧрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдВрдХрд▓рдХ (рдФрд░ рд╕реА # рднрд╛рд╖рд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢, рд╡реИрд╕реЗ рднреА) рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЕрд╕рд╣рдордд рд╣реЛрдВрдЧреЗ рдФрд░ рдЗрд╕ рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдордПрдХреНрд╕ рдЕрднреА рднреА 5 рд╣реЛрдЧрд╛:

рдореВрд▓ рдПрдордПрдХреНрд╕: 5

IncrementX (): 5 рдкрд░ рддреАрди рдХреЙрд▓ рдХреЗ рдмрд╛рдж рдПрдордПрдХреНрд╕

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

Console .WriteLine( " MX: {0}" , bMX);
Mutable tmp1 = bM;
tmp1.IncrementX();
Mutable tmp2 = bM;
tmp2.IncrementX();
Mutable tmp3 = bM;
tmp3.IncrementX();
Console .WriteLine( "MX IncrementX: {0}" , bMX);


* This source code was highlighted with Source Code Highlighter .


(рд╣рд╛рдВ, рдпрджрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рдВрд╢реЛрдзрдХ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдЧрд╛; IncrementX рд╡рд┐рдзрд┐ рдХреЗ рддреАрди рдХреЙрд▓ рдХреЗ рдмрд╛рдж, рдЪрд░ M рдХреА X рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдорд╛рди рд╣реЛрдЧрд╛ 8.)

3. рдПрд░реЗ рдФрд░ рд╕реВрдЪреА



рдЕрдЧрд▓реЗ, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдВрддрд┐рдо рдирд╣реАрдВ, рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХреНрд╖рдг рд╕рд░рдгрд┐рдпреЛрдВ рдФрд░ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рддреЛ, рдЪрд▓реЛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рддрддреНрд╡ рд░рдЦрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реВрдЪреА <T> рд╕реВрдЪреА рдореЗрдВред

List <Mutable> lm = new List <Mutable> { new Mutable(x: 5, y: 5) };

* This source code was highlighted with Source Code Highlighter .


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

lm[0].Y++; //
lm[0].IncrementX(); //


* This source code was highlighted with Source Code Highlighter .


рдЕрдм рдПрдХ рд╣реА рдСрдкрд░реЗрд╢рди рдХреЛ рдРрд░реЗ рд╕реЗ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ:

Mutable[] am = new Mutable[] { new Mutable(x: 5, y: 5) };
Console .WriteLine( " X: {0}, Y: {1}" , am[0].X, am[0].Y);
am[0].Y++;
am[0].IncrementX();
Console .WriteLine( " X: {0}, Y: {1}" , am[0].X, am[0].Y);


* This source code was highlighted with Source Code Highlighter .


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

рд▓реЗрдХрд┐рди рд╣рд╛рд▓рд╛рдВрдХрд┐ C # рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ рдХреА рд╡рд╛рдкрд╕реА рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ IL-code рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдХреВрд▓рди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕рд░рдгреА рддрддреНрд╡ рдХреА рди рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ (рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреЛ ldelema рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдХрд╛рд░рдг, рдкрд┐рдЫрд▓рд╛ рдЯреБрдХрдбрд╝рд╛ рди рдХреЗрд╡рд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рд╣реИ (рд╕реНрдЯреНрд░рд┐рдВрдЧ am [0] .Y ++ рд╕рд╣рд┐рдд;); рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рд╕реАрдзреЗ рд╕рд░рдгреА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рди рдХрд┐ рдЙрдирдХреА рдкреНрд░рддрд┐рдпреЛрдВ рдХреЛред рдФрд░ рдпрджрд┐ рдЖрдк рдкрд┐рдЫрд▓реЗ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╕рдВрдХрд▓рди, рд░рди, рдФрд░ рд╕реАрдзреЗ рд╕рд░рдгреА рдХреЗ рд╢реВрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди X: 5, Y: 5

рдирдП рдореВрд▓реНрдп X: 6, Y: 6

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

Mutable[] am = new Mutable[] { new Mutable(x: 5, y: 5) };
IList<Mutable> lst = am;
lst[0].Y++; //
lst[0].IncrementX(); //


* This source code was highlighted with Source Code Highlighter .


4. рдФрд░ рдореБрдЭреЗ рдпрд╣ рд╕рдм рдХреНрдпреЛрдВ рдЪрд╛рд╣рд┐рдП?



рд╕рд╡рд╛рд▓ рд╡рд╛рдЬрд┐рдм рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рддрдиреА рдмрд╛рд░ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рд╕рд╛рд░реНрдердХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рднреА рдЕрдзрд┐рдХ рдХрд┐рддрдиреА рдмрд╛рд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдмрдирд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рдЬреНрдЮрд╛рди рд╕реЗ рдПрдХ рд▓рд╛рдн рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реИрдВ, рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдХрдИ рдЕрдиреНрдп "рдЧрд╡рд░рд┐рдХреНрд╕" рд╣реИрдВ рдЬреЛ рднрдпрд╛рдирдХ рдмрд▓ рдХреЗ рд╕рд╛рде рдХреЛрдбрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдХреА рдЯреАрдо рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдРрд╕реЗ "рдЧреИрд╡реАрдХреНрд╕" рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╡реЗ рдЕрдиреНрдп рдЯреАрдореЛрдВ рдореЗрдВ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдореЗрдВред рд╣рд╛рдВ, .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░ рдореМрдЬреВрдж рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдЕрдирдЬрд╛рдиреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдорд╣рдВрдЧрд╛ рдЖрд╢реНрдЪрд░реНрдп (**) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

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

var x = new { Items = new List < int > { 1, 2, 3 }.GetEnumerator() };
while (x.Items.MoveNext())
{
Console .WriteLine(x.Items.Current);
}


* This source code was highlighted with Source Code Highlighter .


(рдЗрд╕ рдХреЛрдб рдХреЛ LINQPad рдпрд╛ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВред)

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



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

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

-----------------------------

(*) рдПрдХ рдмрдВрдж рдЗрддрдирд╛ рднрдпрд╛рдирдХ рдЬрд╛рдирд╡рд░ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЬрдЯрд┐рд▓ рдирд╛рдо рд╕реЗ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЕрдЪрд╛рдирдХ, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдорд╣рд╛рди рдХрд╛рд░рдг рд╣реИ: "рд╕реА # рдореЗрдВ рдХреНрд▓реЛрдЬрд░" ред

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

(***) рдпрд╣ рдПрд░рд┐рдХ рд▓рд┐рдкрд░реНрдЯ рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдХреНрд╖реНрдо рд╕рдВрджрд░реНрдн рд╣реИ (рдЬреЛ рдкрд░рд╕реНрдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдмреБрд░рд╛рдИ рдорд╛рдирддрд╛ рд╣реИ), рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ "рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ" рд╡реНрдпрд╡рд╣рд╛рд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдИрдбреАрдПрд╕рдЖрд░реЛрдкреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЙрдХреНрд╕ рдпрд╛ рдирд╣реАрдВред рдмреЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рд╕рд╡рд╛рд▓ рд╣реИ ред

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


All Articles