рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЬреЛ C ++ рдХреА рд╢рд╛рдирджрд╛рд░ рджреБрдирд┐рдпрд╛ рд╕реЗ .NET рдХреА рд╢рд╛рдирджрд╛рд░ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЖрдП рдереЗ, рдЙрдиреНрд╣реЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпрд╛рдж рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдорд╛рдирдХ рд░реВрдк рд╕реЗ рдЦреЛрджрдирд╛ рдерд╛, рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВред рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд▓рдЧ рд░рд╣реА рдереАрдВ, рдХрд░реАрдмреА рдкрд░реАрдХреНрд╖рд╛ рдкрд░, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ - рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╡рд┐рдкрд░реАрдд рдЬреЛ рд╣рдо рд╕рднреА рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рдереЗред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХрдИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд░реВрдмреА рднрд╛рд╖рд╛рдУрдВ рдХреА рдХреБрдЫ "рд╕реНрдкрд╖реНрдЯрддрд╛" рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдкреНрд░рд╕рд┐рджреНрдз
рд╡рд╛рдЯ рдлрд┐рд▓реНрдо рдпрд╛рдж рд╣реИред рд╕реАрдорд╛рд╡рд░реНрддреА рдХреНрд╖реЗрддреНрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдкрд░ рдкрд░рд┐рдЪрд┐рдд рджреБрдирд┐рдпрд╛ рдХреЗ рддрд░реНрдХ рдзреВрдореНрд░рдкрд╛рди рдХрд░рддреЗ рд╣реИрдВ - рд╡реЗ рдЬрд┐рдирдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд▓реЛрдЧ рдЪрдврд╝рддреЗ рдирд╣реАрдВ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЗрди рдЙрдЪреНрдЪ рдорд╛рдорд▓реЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рдмрдЪрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдФрд░ рд╕реА # рднрд╛рд╖рд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ, рдЕрд╕рд╛рдорд╛рдиреНрдп рдкрдХреНрд╖ рд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВред рдЕрд░реНрдерд╛рддреН, рдХреБрдЫ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛ рдПрдХ рддрд░рдл, рднрд╛рд╖рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ, рдФрд░ рджреВрд╕рд░реА рдУрд░, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рднреА рдмрд╣рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рди рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред рдореИрдВ рдмрд╕ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рд▓рд┐рдП "рддрд╛рд░реНрдХрд┐рдХ рдФрд░ рд╕рдордЭ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА" рд╣рд░ рдЪреАрдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрддрд╛рд░реНрдХрд┐рдХ рдФрд░ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдФрд░, рд╣рд╛рдВ - рдореИрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд╕рдЪреЗрдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рднрд╛рд░реА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдЯреНрдпреВрдкрд▓ рд╕реЗ рдХреНрдпрд╛ рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд░ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣ рдпрд╣рд╛рдБ рдирд╣реАрдВ рд╣реИ - рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ Microsoft рдХреЗ рд▓рд┐рдП рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рдВрдЪ рдорд┐рдирдЯ рдХрд╛ рд╣рд╛рд╕реНрдп рд╣реИред рддреЛ, рд╡рд╣ рд╕рдм рдЬрд┐рд╕реЗ рдЖрдк рджреИрдирд┐рдХ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ - рдпрд╣ рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!
рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
int i = 0;
рдореИрдВ рдХреНрдпрд╛ рд╕реБрдирддрд╛? рдЬреИрд╕реЗ "рдпрд╣ рдХреЛрдб рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?" рдкреЗрд╢реЗ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЛ! рдЗрд╕ рддрд░рд╣ рдХреЗ рдмреМрджреНрдзрд┐рдХ рдмрд╣реБрдордд рдХрд╛ рд╣рдорд╛рд░реЗ рдХреНрд▓рдм рдСрдл рдПрдЧрд╣реЗрдбреНрд╕ рдореЗрдВ рдХреЛрдИ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХреЛрдб рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛ рдЕрдиреБрдХреВрд▓рди рдХреЗ рджреМрд░рд╛рди рдЗрд╕реЗ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреЗрдЧрд╛ рдФрд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЕрд░реНрде рдорд╛рдирд╕рд┐рдХ рд░реВрдк рд╕реЗ рдордВрдж рд╣реЛрдиреЗ рдкрд░ рднреА рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рд╣рдо рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ 0 рдХреЗ рдмрд░рд╛рдмрд░ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВред
рдЖрдЗрдП рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
int i = 0; int j = i;
рдХрдорд░реЗ рдХреЗ рдПрдХ рдФрд░ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдиреЗ рд╣рдорд╛рд░реА рд╡рд╛рдЪрд╛ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЬрдмрд░рджрд╕реНрдд рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред рдЯреИрдм рдмрдВрдж рди рдХрд░реЗрдВ - рдореИрдВ рдХреНрд▓рд╛рдЗрдореИрдХреНрд╕ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╛рдпреБрдордВрдбрд▓ рдХреЛ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рдлреБрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред
рдЪрд▓реЛ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ
int i = 0, j = 0;
рдФрд░ рдРрд╕рд╛ рд╣реИ
int i = 0, j = i;
рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рд╣рдо рдХреБрдЫ рдЧрдгрд┐рдд рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рддреБрд░рдВрдд рд╢реВрдиреНрдп рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдкрд░ рдПрдХ рдореАрдЯрд░ рд╢рд╛рд╕рдХ рджреЗрддрд╛ рд╣реИред рд╣рд┐рдореНрдордд рдордд рдХрд░реЛ, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдореЗрд░реЗ рдХреЛрдб рд╕рдореАрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде!
int i = j = 0;
рд▓реЗрдХрд┐рди рд░реВрд╕рд┐рдпреЛрдВ рдиреЗ рд╣рд╛рд░ рдирд╣реАрдВ рдорд╛рдиреА!
int i = int j = 0;
рдЕрдм рдЬрдм рдХрд┐ рдЖрддреНрдорд╛ рдореЗрдВ рдХрдордЬреЛрд░ рдиреЗ рд╣рдорд╛рд░реЗ рдХреБрд╢рд▓ рд╣рд╛рдереЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЪрд░реНрдЪрд╛ рдХреЛ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣рдж рддрдХ рд╡рд┐рд╡рд┐рдзрддрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ!
int i = whatever ? 1 : 2;
рд╣рд░ рджрд┐рди рд╣рдо рдРрд╕рд╛ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рд░ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ (рд╡рд┐рд╢реЗрд╖рдХрд░ рд╡реЗ рдЬреЛ рдХрднреА рднреА C ++ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреЛ рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдХреЛ C # рд╕реЗ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдорд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдПрд╣рд╕рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХрдИ рдСрдкрд░реЗрд╢рди рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ), рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
int i = whatever ? (j = 1) : 2;
рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕реЗ рд▓реЛрдЧ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдПрдХ рд░рд╣рд╕реНрдп рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрд╛рдд рд╣реИ - рдпрджрд┐ рдЬреЛ рдХреБрдЫ рднреА рд╣реИ, рддреЛ j рдХреЛ рдПрдХ рдореЗрдВ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ рдФрд░ рд╡реЗрд░рд┐рдПрдмрд▓ i рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо (рдЬреЛ рдХрд┐ j рдХрд╛ рдорд╛рди рд╣реИ)ред рдЕрдиреНрдпрдерд╛, рдЙрд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ 2. рдЗрд╕ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╢рдХреНрддрд┐ рдХреЗ рд╕рд╛рде рд╕рд╢рд╕реНрддреНрд░, рдХреВрд▓реНрд╣реЗ рд╕реЗ рдЧреЛрд▓реА рдорд╛рд░реЛ!
int i = whatever ? 2 * (j = 1) - 1 : 2;
рд▓реЗрдХрд┐рди рдПрдХ рд╣рдореЗрд╢рд╛ рдХреБрдЫ рдЕрдЬреАрдм рдЪрд╛рд╣рддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЯрд░реНрдирд░реА рдСрдкрд░реЗрдЯрд░ рдореЗрдВ рдПрдХ рдмрд╛рдЗрдмрд┐рдХ рд╕рдореАрдХрд░рдг рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╛ рдмрд╕ рдХреБрдЫ рдмрдЪрд╛ рд╣реИред
int i = whatever ? { j = 1; return 2; } : 2;
рдХрд╛рд╢, рдорд╛рдирд╡ рдорди рдПрдХ рд░рдХреНрддрдкрд╛рдд рдорд╢реАрди рдХреЗ рд╕рд╛рдордиреЗ рдЕрд╕рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╡рд╣ рдПрдХ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ ...
int i = whatever ? ( () => 1 )() : 2;
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЪрд┐рд▓реНрд▓рд╛рддреЗ рд╣реБрдП рд╕реБрдирд╛:
- рд╣рд╛рдВ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмрдирд╛рдКрдВрдЧрд╛, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдк рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реИ?
- рдХреЛрдИ рднреА!
- рдХреНрдпрд╛?
- рдХреЛрдИ рднреАред Lyuyuyubogoред Lyuyuyuyubogo!
- рд╕рд┐рд╕реНрдЯрдо.рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯрдбреЗрд▓реЗрдЧреЗрдЯред
- рдирд╣реАрдВ, рдареАрдХ рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ ...(рд╡реИрд╕реЗ, рдЬреЛ рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдХреЛ YouTube рдкрд░ рдвреВрдВрдврдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ - рдореИрдВ рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛)
рдФрд░ рдЙрд╕реЗ рдкрд╛рддрд╛ рд╣реИ!
int i = whatever ? new System.Func<int>( () => 1 )() : 2;
рдпрджреНрдпрдкрд┐, рдЕрдлрд╕реЛрд╕, рд╡рд╣ рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИред
int i = whatever ? new System.Func<int>( () => { j = 1; return 2 + j; } )() : 2;
рд▓реЗрдХрд┐рди рдордЫрд▓реА рдХреА рдХрдореА рдкрд░, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдмреВрдЯ рдЪреБрдиреНрдиреА рд╣реИред
рдЕрдм рдЬрдм рдмрд╛рдХреА рдХреЗ рдЖрдзреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреЛрд░ рд╕реЗ рдЦрд░реНрд░рд╛рдЯреЗ рд▓реЗ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЬрдЯрд┐рд▓ рдирд┐рд░реНрджреЗрд╢реЛрдВ - рдмреНрд▓реЙрдХреЛрдВ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рдо рд╕рднреА рдиреЗ рд╕рд╛рдЗрдХрд┐рд▓ рд▓рд┐рдЦреАред
for(int i = 0; i < 10; i++);
рдФрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рдорд╛рди рд╣реИ:
{ int i = 0; while(i < 10) i++; }
рдЦреИрд░, рдРрд╕реЗ
int i; for(i = 0; i < 10; i++)
рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рдорд╛рдиред
int i = 0; while(i < 10) i++;
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреНрд▓реЙрдХ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рд╕реАрдзреЗ рдирд┐рдпрдВрддреНрд░рдг рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рдорд╣рд╛рди рд╣реИред рдЕрдиреНрдпрдерд╛, рдХрдИ рдХреЙрдореНрдкреИрдХреНрдЯ рдЪреАрдЬреЛрдВ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рд╕рдЪ рд╣реИред
using(IDisposable data = GetSomeData()) { }
рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕рд╛рдордиреЗ рдЖрддрд╛ рд╣реИ
{ IDisposable data = null; try { data = GetSomeData(); } finally { if(data != null) data.Dispose(); } }
рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ "рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк" рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
{ int i = 5; if(i < 10) i = 7; }
рдирд┐рдпрдВрддреНрд░рдг рдХрдерди рдореЗрдВ рдПрдХ рдЪрд░ рдШреЛрд╖рдгрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реЛрдЧрд╛ред рдЬреАрддрдирд╛?
if((int i = 5) < 10)
рдЗрддрдиреЗ рдкрд╛рд╕ ...
рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди C # рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рд╣реИред рдЪрд▓реЛ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ!
рд╕реНрдорд░рдг рдХрд░реЛ рдХрд┐ рдХреИрд╕реЗ рд╣рдо рдмрд╕ рдФрд░ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рдореВрд▓ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЛ рдмреБрд▓рд╛рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдПрдХ рд╕реБрдВрджрд░ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдерд╛ - рдЧрд▓реЗ рдореЗрдВ рдЖрдБрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╖реНрдЯрд┐!
class SomeClass { public SomeClass(int data) { } } class SomeOtherClass : SomeClass { public SomeOtherClass(int data) : base (data) { } }
рдФрд░ рдореИрдВ рддреБрд░рдВрдд рдХреБрдЫ рдЕрдЬреАрдм рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
class SomeClass { public virtual void SomeMethod(int data) { } } class SomeOtherClass : SomeClass { public override void SomeMethod(int data) : base (data) { }
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ - рдЗрд╕рдиреЗ рдореЗрд░реА рджреЛ рдкрд╕рд▓рд┐рдпрд╛рдБ рддреЛрдбрд╝ рджреАрдВред рдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ!
рдФрд░ рдЕрдм, рдЬрдм рдХреЗрд╡рд▓ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдореБрдЭреЗ рдкрдврд╝рддрд╛ рд╣реИ (рд╣рд╛рдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдЖрдк рд╣реИ - рдХреГрдкрдпрд╛ рдЫреБрдЯреНрдЯреА рди рдХрд░реЗрдВ - рдореИрдВ рдЕрдХреЗрд▓реЗрдкрди рд╕реЗ рдбрд░рддрд╛ рд╣реВрдВ) рд╣рдо рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВрдЧреЗ, рдЬреЛ рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдЕрдЬреАрдм рд╣реИ рдХрд┐ рдпрд╣ рдореБрдЭреЗ рднреА рдЪрдХрд┐рдд рдХрд░рддрд╛ рд╣реИред
рджреВрд╕рд░реЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╡реИрд╕реЗ, рдпрд╣ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реИред
рд╣рдо рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдо рд╣рд░ рджрд┐рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣рдж рддрдХ рдЕрд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗред рдЙрдк-рдЙрдк рд╕реЗ, рдЗрд╕рд▓рд┐рдП рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рд╣реЛрдЧрд╛ рдЬреЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВрдЧреЗред
new FooA().Foo(); new FooB().Foo(); ((IFoo) new FooA()).Foo(); ((IFoo) new FooB()).Foo(); ((FooA) new FooB()).Foo(); ((IFoo)(FooA) new FooB()).Foo();
рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХрд┐рддрдиреЗ рдордЬрд╛рдХрд┐рдпрд╛ рд╣реИрдВред
рдЪрд▓реЛ рд╕рд░рд▓рддрдо - рдЖрднрд╛рд╕реА рддрд░реАрдХреЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдХрд┐рддрд╛рдм рдХреА рддрд░рд╣ред
interface IFoo { void Foo(); } class FooA : IFoo { public virtual void Foo() { System.Console.WriteLine("A"); } } class FooB : FooA, IFoo { public override void Foo() { System.Console.WriteLine("B"); } }
рдкрд░рд┐рдгрд╛рдо рд╕реНрдкрд╖реНрдЯ рд╣реИ!
new FooA().Foo();
рд▓реЗрдХрд┐рди рд╣рдо рд╣реЛрд╢рд┐рдпрд╛рд░ рд╣реИрдВред рд╣рдореЗрдВ рдЖрднрд╛рд╕реА рддрд░реАрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рд╣рдорд╛рд░рд╛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред
interface IFoo { void Foo(); } class FooA : IFoo { public void Foo() { System.Console.WriteLine("A"); } } class FooB : FooA, IFoo { public void Foo() { System.Console.WriteLine("B"); } }
рдирд┐рд╢реНрдЪрд┐рдд рд╣реА рд╣рдореЗрдВ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓реЗрдЧреА
рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рди рджреЗрдВ - рд╕рдорд╕реНрдпрд╛ рдЗрд╕рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдирдпрд╛ рдХреАрд╡рд░реНрдб рдкреНрд░рдпреЛрдЧ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо рднрд╛рд░реА рд╣реИред
new FooA().Foo();
рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рд░рд╛рдХреНрд╖рд╕реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рдПрдХ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЛ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзрд┐ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдЧреА, рдПрдХ рдорд╛рдорд▓реЗ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде - рдПрдХ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рд╕реНрдЯрд┐рдВрдЧред
рдЪрд▓реЛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдмрд┐рдирд╛ рдЗрд╕рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣рдореЗрд╢рд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ред
class IFoo { public void Foo() { System.Console.WriteLine("A (I)"); } } class FooA : IFoo { public void Foo() { System.Console.WriteLine("A"); } } class FooB : FooA { public void Foo() { System.Console.WriteLine("B"); } }
рдХрд╛рд╢, рдЙрдкрджреНрд░рд╡ - рд╡реНрдпрд╡рд╣рд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред
new FooA().Foo();
рдпрджрд┐ рд╡рд╣ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдЕрдВрддрд┐рдо рд╡рд┐рдзрд┐ рдХрд╣рддрд╛ рд╣реИ, рддреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реИред
рдХреЛрдИ рднреА рддрд░реНрдХ рд╕рд┐рд░реНрдл рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рдЙрд╕ рдЕрдиреБрдЪреНрдЫреЗрдж 3 рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╕рдВрд╢реЛрдзрди 4 рдХреЗ 2005 рдорд╛рдирдХ рдХреЗ рдЦрдВрдб 2 рдХреЗ рднрд╛рдЧ 3 рдХреЗ рдЕрдзреНрдпрд╛рдп 1 рдХреЗ рдкреИрд░рд╛ 1 рдХреЗ рдЙрдкрдЦрдВрдб 14 рдХреЛ рдЪреМрдереЗ рдорд╣реАрдиреЗ рдХреЗ рддреАрд╕рд░реЗ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ 2 рдмреИрдардХ рдХреЗ 1 рдкрдврд╝рдиреЗ рдкрд░ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдЖрддреНрдо-рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ - рдореЗрд░реЗ рд╕рдВрдХрд▓рдХ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╢реБрдХреНрд░рд╡рд╛рд░ рдХреЛ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рдордирд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╡реЗ рдЕрдм рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рд░рд╕реЛрдИ рдореЗрдВ рдЦрд░реНрд░рд╛рдЯреЗ рд▓реЗ рд░рд╣реЗ рд╣реИрдВред рд╢рд╛рдпрдж рдореИрдВ рднреА рдРрд╕рд╛ рд╣реА рдХрд░реВрдВрдЧрд╛ред рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдкрдирд╛ рдФрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рд╣реИ!