рдЙрдкрдпреЛрдЧ рдмреНрд▓реЙрдХ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░

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

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

// position     -  long position = -1; using (var file = new FileStream("d:\\1.txt", FileMode.Append) { //   ,     //   ! Position = position }) { //  -   } 


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

.NET рдореЗрдВ C ++ рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╣рдо рдЕрдкрд╡рд╛рдж рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрди рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрдм рдХреЛрдб рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ ред

рдЗрд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 class Person { public string Name { get; set; } public int Age { get; set; } } // ... var person = new Person {Name = "John", Age = 42}; 


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

 var tmp = new Person(); tmp.Name = "Jonh"; tmp.Age = 42; var person = tmp; 


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

 var tmp = new Person(); tmp.Name = "John"; tmp.Age = 42; var person = tmp; 


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рд╕реЗрдЯрд░ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдЧрд┐рд░рддрд╛ рд╣реИ, рддреЛ _ рд╡реНрдпрдХреНрддрд┐ рдлрд╝реАрд▓реНрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рд╛рд░рдВрдн рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдВрдд рддрдХ рдирд╣реАрдВ, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЗрдирд┐рд▓рд╛рдЗрдЬрд╝рд░ рдХреА "рдкрд░рдорд╛рдгреБрддрд╛" рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░реЗрдЧрд╛, рдЬреЛ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред

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

 var file = new FileStream("d:\\1.txt", FileMode.OpenOrCreate); try {} finally { if (file != null) ((IDisposable)file).Dispose(); } 


рдЕрдм, рдпрджрд┐ рдЖрдк 2 рдФрд░ 2 рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд╣реЛрддрд╛ рд╣реИ:

 long position = -1; var tmpFile = new FileStream("d:\\1.txt", FileMode.OpenOrCreate); // !    ,  Dispose   ! tmpFile.Position = position; var file = tmpFile; try { } finally { if (file != null) ((IDisposable)file).Dispose(); } 


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

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

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

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

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


All Articles