рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
C # 8 рдХреЗ рд╡рд┐рд╖рдп рдХреА рдЦреЛрдЬ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдирд┐рдпрдореЛрдВ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддреЗ рд╣реИрдВред
C # 8 рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ
рдХреИрд╕реЗ рд╕рдВрд░рдЪрд┐рдд
рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдлрд╛рдпрд░рд╡реБрдб рдХреЛ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдиреНрдпрддрд╛рдУрдВ рд╕реЗ рджреВрд╖рд┐рдд рдХреЛрдб, рд░рдирдЯрд╛рдЗрдо рдЕрдкрд╡рд╛рдж рдФрд░ рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИредC # 8 рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдЬреНрдЮрд╛рдкрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрд╕рд╛рд╡рдзрд╛рдиреА рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рднрд░рд╛ рд╣реИред рдЙрд╕ рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЧрд▓рдд рдзрд╛рд░рдгрд╛рдПрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ - рдЗрд╕рд╕реЗ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдирд╛ рдХрд┐рддрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛрдб GitHub рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ: jeremybytes / interfaces-in-csharp-8 , рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдбреЗрдВрдЬрд░рд╕рдПрд╕рдореНрдпреВрд╢рдВрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ ред
рдиреЛрдЯ: рдпрд╣ рдЖрд▓реЗрдЦ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ .NET рдХреЛрд░ 3.0 рдореЗрдВ рд▓рд╛рдЧреВ C # 8 рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ 16.3.0 рдФрд░ .NET рдХреЛрд░ 3.0.100 ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдиреБрдорд╛рдирдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░рдг рдореИрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╡реНрдпрдХреНрдд рдХрд░рддрд╛ рд╣реВрдВ: рдореБрдЭреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рд▓реЗрдЦ рдорд┐рд▓рд╛ рдЬрд╣рд╛рдВ рд▓реЗрдЦрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЦрд░рд╛рдм рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреЛрдб рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ (рдореИрдВ рд▓реЗрдЦ рдХреЛ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рд▓реЗрдЦрдХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓реБрдврд╝рдХрд╛ рд╣реЛ; рдореИрдВ рдЙрдирд╕реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реВрдВрдЧрд╛) ред
рд▓реЗрдЦ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдХреЛрдб рдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдкреВрд░рдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдХреЛрдб рдореЗрдВ рдХрдИ рдЧрд▓рдд рдзрд╛рд░рдгрд╛рдПрдБ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ (рдХреЛрдб рдореЗрд░реЗ
рдЧреАрддрд╛рдкреНрд░реЗрд╕ рдореЗрдВ рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ
BadInterface рдореЗрдВ рд╣реИ)
рдпрд╣рд╛рдБ рдореВрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ:

рдмрд╛рдХреА рд▓реЗрдЦ MyFile рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдореЗрд░реЗ рд▓рд┐рдП,
MyFile.cs рдлрд╝рд╛рдЗрд▓ рдореЗрдВ) рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
рд▓реЗрдЦ рддрдм рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде
Rename
рдХреИрд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдореМрдЬреВрджрд╛
MyFile
рд╡рд░реНрдЧ рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝ рджреЗрдЧрд╛ред
рдпрд╣рд╛рдБ рдЕрджреНрдпрддрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ (
IFileHandler.cs рдлрд╝рд╛рдЗрд▓ рд╕реЗ):

MyFile рдЕрднреА рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рддреЛ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред
рдмреБрд░реА рдзрд╛рд░рдгрд╛рдПрдБрдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрдбрд╝реА рдзрд╛рд░рдгрд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ: рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрдерд┐рдд рдПрдХ рднреМрддрд┐рдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рдЙрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ рдореИрдВрдиреЗ рд░реИрдо рдореЗрдВ рд╕реНрдерд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдерд╛ред (рдиреЛрдЯ: рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рд╣реИред рдпрд╣ рдЙрд╕ рд▓реЗрдЦ рд╕реЗ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреА рдореИрдВ рдЖрд▓реЛрдЪрдирд╛ рдХрд░рддрд╛ рд╣реВрдВред рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
MemoryStringFileHandler.cs рдореЗрдВ рдорд┐рд▓реЗрдЧрд╛ред)

рдпрд╣ рд╡рд░реНрдЧ рдПрдХ рдФрдкрдЪрд╛рд░рд┐рдХ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд░реИрдо рдореЗрдВ рд╕реНрдерд┐рдд рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╛рда рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ рдЬреЛ рднреМрддрд┐рдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛; рдЖрдорддреМрд░ рдкрд░
System.IO
рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рд╣реИред
рджреЛрд╖рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд░рдиреЗрд╡рд╛рд▓рд╛рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рд╡рд░реНрдЧ рдХреНрд╖рддрд┐рдЧреНрд░рд╕реНрдд рд╣реИред
рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ рд╡рд┐рдзрд┐ рд╣реИ, рддреЛ рдпрд╣ рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ (рдпрд╛, рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓реЗрдВ)ред
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рдорд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреМрддрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рддреЛ рдпрд╣ рдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд╕реНрдерд┐рдд рдлрд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдРрд╕реА рдлрд╛рдЗрд▓реЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реИрдВред
рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХреА рдмрд╛рдд рдХрд░реЗрдВ рддреЛ рдЗрд╕рдореЗрдВ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рд╕рд┐рдореНрдпреБрд▓реЗрдЯреЗрдб рдпрд╛ рдирдХрд▓реА рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХрд░рддреЗ рд╕рдордп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред
рдЪреВрдВрдХрд┐ рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рджреВрд╖рд┐рдд рд╣реИрдВред
рдЕрдиреБрдЪрд┐рдд рднрдп?рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд░ рдХреЛ рдирд┐рд░рд╛рдзрд╛рд░ рдорд╛рдирдирд╛ тАЛтАЛрдмреЗрдХрд╛рд░ рд╣реИред рдЬрдм рдореИрдВ рдХреЛрдб рдореЗрдВ рдЧрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡реЗ рдореБрдЭреЗ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВ: "рдареАрдХ рд╣реИ, рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдирд╛ рд╣реИред" рдореИрдВ рдЗрд╕рд╕реЗ рдЕрд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред
рдЖрдорддреМрд░ рдкрд░ рдореИрдВ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ: рдореИрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдбрд░ рдерд╛ рдХрд┐ "рд╕реНрдерд┐рд░ рдЙрдкрдпреЛрдЧ" рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдм рддрдХ, рдпрд╣ рдЖрд╢реНрд╡рд╕реНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдЪрд╛рд░ рд╣рд╡рд╛ рдореЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рджреВрд╕рд░реЛрдВ рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдорд╛рд░реНрдЧ рд▓реЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣рдорд╛рд░реА рд╢рдХреНрддрд┐ рдореЗрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЗрддрдирд╛ рджрд░реНрджрдирд╛рдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЗрдореИрдВрдиреЗ рдпрд╣ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдХрд┐ рдпрджрд┐ рд╣рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд рдзрд╛рд░рдгрд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рдХреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХреЛрдб рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдмрд╛рд╣рд░ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, System.IO рдХреЗ рдмрд╛рд╣рд░)ред рдЖрдк рд╢рд╛рдпрдж рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдПрдХ рдЦрддрд░рдирд╛рдХ рдШрдВрдЯреА рд╣реИред рд▓реЗрдХрд┐рди, рдЕрдЧрд░ рд╣рдо рдЙрди рдЪреАрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП?
рд╣рдореЗрд╢рд╛ рдирд╣реАрдВред
рдПрдХ рд╡реНрдпрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЖрдЗрдбрд┐рдпрд╛рдбрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдпрд╛ред
рд╕реНрд░реЛрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпрд╣рд╛рдВ рдореВрд▓ IReader рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ (
IReader.cs рдлрд╝рд╛рдЗрд▓ рд╕реЗ - рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдм рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдбреЗрдЯ рд╣реИрдВ):

рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдЯрдо рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕реЗ рдПрдХ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдПрдХ рдХреНрд░рдо рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ (рд╣рд╛рдБ, рдореБрдЭреЗ рдлрд┐рдмреЛрдирд╛рдЪреА рдЕрдиреБрдХреНрд░рдо рдмрдирд╛рдиреЗ рдореЗрдВ рдПрдХ рдЕрд╕реНрд╡рд╛рд╕реНрдереНрдпрдХрд░ рд╣рд┐рдд рд╣реИ)ред рдпрд╣рд╛рдБ
FibonacciReader
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ (
FibnoteReader.cs рдлрд╝рд╛рдЗрд▓ рд╕реЗ - рдпрд╣ рдореЗрд░реЗ рдЧрд┐рдЯреНрдЯреВ рдкрд░ рднреА рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ):

FibonacciSequence
рдХреНрд▓рд╛рд╕
IEnumerable <int>
(рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐рд╕реНрд╕реЗрдВрд╕ рд╕реЗ.рдЗрди рдлрд╝рд╛рдЗрд▓ рд╕реЗ) рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрд╣ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ 32-рдмрд┐рдЯ рдкреВрд░реНрдгрд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрддрд┐рдкреНрд░рд╡рд╛рд╣ рдХрд╛рдлреА рдЬрд▓реНрджреА рд╣реЛрддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдореЗрд░реЗ
TDDing рдХреЛ C # рд▓реЗрдЦ
рдореЗрдВ рдПрдХ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рджреЗрдЦреЗрдВред
DangerousAssumations рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рд╕рд╛рдВрддреНрд╡рдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИ рдЬреЛ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐рдЖрд░ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ (
Program.cs рдлрд╝рд╛рдЗрд▓ рд╕реЗ):

рдФрд░ рдпрд╣рд╛рдБ рдирд┐рд╖реНрдХрд░реНрд╖ рд╣реИ:
рдЕрджреНрдпрддрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕рддреЛ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдб рд╣реИред рд▓реЗрдХрд┐рди, рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рддрддреНрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ IReader, рдФрд░ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдВрдкреВрд░реНрдг рд╕рдВрдЧреНрд░рд╣ рдирд╣реАрдВред рдЪреВрдВрдХрд┐ рд╣рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЕрднреА рддрдХ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ "рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЖрдИрдбреА" рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реВрдЪрдХрд╛рдВрдХ рдкрд░ рд╕реНрдерд┐рдд рддрддреНрд╡ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдпрд╣рд╛рдВ рд╣рдорд╛рд░рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬрд┐рд╕рдореЗрдВ
GetItemAt
рдкрджреНрдзрддрд┐
GetItemAt
(
IReader.cs рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ):

рдпрд╣рд╛рдБ
GetItemAt
рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдорд╛рдирддрд╛ рд╣реИред рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ - рдЗрддрдирд╛ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдореМрдЬреВрджрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рджрд╕реНрдп (
GetItems
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдВ рдХреЛрдИ "рдмрд╛рд╣рд░реА" рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИред рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде, рд╡рд╣ LINQ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдореИрдВ LINQ рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдБ, рдФрд░ рдпрд╣ рдХреЛрдб, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрдереЛрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реИред
рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдЕрдВрддрд░рдЪреВрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
GetItems
рдХреЙрд▓
GetItems
, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдЗрдЯрдо рдХреЛ рдЪреБрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░реЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
FibonacciReader
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
FibonacciReader
рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рднреА рдорд╛рди рдЙрддреНрдкрдиреНрди рд╣реЛрдВрдЧреЗред рдПрдХ рдЕрджреНрдпрддрди рд░реВрдк рдореЗрдВ,
Program.cs рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рд╣реЛрдЧрд╛:

рддреЛ рд╣рдо
GetItemAt
рдХрд╣рддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдирд┐рд╖реНрдХрд░реНрд╖ рд╣реИ:

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

GetItemAt
рд╡рд┐рдзрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рджрд┐рдП рдЧрдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреА рд╣реИред
рдпрд╣рд╛рдВ рдореИрдВ рдЙрд╕реА LINQ
ElementAt
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВ рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ GetItems рд▓реМрдЯрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдлрд╛рдЗрдмреЛрдиреИрдЪрд┐ рдЕрд╕рдорд╛рдирддрд╛ рдХреЗ рд╕рд╛рде, рдЬреЛ
IEnumerable
ред
рдЪреВрдВрдХрд┐
FibonacciSequence
IEnumerable
, рдЗрд╕рд▓рд┐рдП рдЬреИрд╕реЗ рд╣реА рд╣рдо рдЪрдпрдирд┐рдд рддрддреНрд╡ рдкрд░ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ, рд╡реИрд╕реЗ рд╣реА
ElementAt
рдХреЙрд▓ рд╕рдорд╛рдкреНрдд
ElementAt
ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдкреВрд░реЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд┐рддрд┐ рддрдХ рд╕реНрдерд┐рдд рддрддреНрд╡ рд╣реИрдВред
рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдпрдВрддреНрд░рдг рдмрд┐рдВрджреБ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬреЛ рд╣рдордиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдКрдкрд░ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдЖрд╡реЗрджрди рдЪрд▓рд╛рдПрдБред рдЗрд╕ рдмрд╛рд░ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдкрд░ рдареЛрдХрд░ рдЦрд╛рддреЗ рд╣реИрдВ (рдЬрдм
GetItems
)ред
GetItemAt
рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдгрдпрд╣ рдЙрджрд╛рд╣рд░рдг рдереЛрдбрд╝рд╛ рджреВрд░ рдХреА рдмрд╛рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдкрдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рдХреЗ рд╕реЗрдЯ рд╕реЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рд╣рдо рдкреНрд░рд╛рдХреГрддрд┐рдХ рдЖрдИрдбреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВред
рдЕрдЧрд░ рд╣рдордиреЗ рдЖрдЗрдЯрдореНрд╕ рдХреЛ рдЖрдИрдбреА рд╕реЗ рдЦреАрдВрдЪрд╛ рд╣реИ, рддреЛ рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ, рд╣рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рдкреНрд░рджрд░реНрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рднреА рддрддреНрд╡реЛрдВ рдХреА рд╡рд╛рдкрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп "рд░реАрдбрд░" рдХреЛ рдЗрд╕рдХреА рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡ рдЦреАрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдРрд╕рд╛ рдСрдкрд░реЗрд╢рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╣реЛрдЧрд╛ред
рдЕрдкрдиреА рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЛрдорд╛рдиреНрдпрддрд╛рдПрдБ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИрдВред рдпрджрд┐ рд╣рдордиреЗ рдХреЛрдб рдореЗрдВ рдЕрдкрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рддреЛ рдХреЛрдИ рднреА рдХрд╛рд░реНрдп рдХрднреА рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдХреЛрдб рдореЗрдВ рдорд╛рдиреНрдпрддрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐
GetElementAt
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЦрд░рд╛рдм рд╣реИред рд╣рд╛рдВ, рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдЫреЛрдЯреЗ рд╣реИрдВ, рдпрд╛ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рддрддреНрд╡ "рд╕рд╕реНрддреЗ" рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдЙрдЪрд┐рдд рд╕рдордЭреМрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВ, рдлрд┐рд░ рднреА, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдмрджрд▓рд╛рд╡реЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рднреА рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рдирд┐рд╣рд┐рдд рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖реЛрдВ рдХреЛ рддреМрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛рдУрдВ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рд╕рдВрднрд╡рддрдГ рд╡рд╣ рдХреЛрдб рдЬреЛ рдЗрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛)ред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдиреНрдпрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рдЧреБрдб рд▓рдХ!