{"id":259253,"date":"2015-06-13T22:03:02","date_gmt":"2015-06-13T18:03:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=259253"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=259253","title":{"rendered":"\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u043f\u043e C# \u0438 CLR (v2.0)"},"content":{"rendered":"<p>     \t<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8de\/186\/c75\/8de186c756754226b5df4d1de4ecf784.png\"\/><br \/>  \u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043e\u043a \u043f\u043e .NET.<br \/>  <a name=\"habracut\"><\/a><br \/>  \u0424\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0431\u0435\u0440\u0435\u0442 \u0440\u0435\u0432\u0430\u043d\u0448.<br \/>  *.CONFIG \u2014 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u043c\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e?  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u044b\u0446<\/b><\/p>\n<div class=\"spoiler_text\">\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u044e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 \u043e\u0442 \u041c\u0430\u0440\u043a\u0430 \u0420. \u00abProcmon.exe\u00bb, \u0437\u0430\u0442\u0435\u043c \u0441\u0432\u043e\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u043e\u043a\u043e\u043d\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0441\u0440\u0430\u0437\u0443 \u0437\u0430\u043a\u0440\u044b\u0432\u0430\u044e, \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u044e \u0441\u0431\u043e\u0440 \u0441\u043e\u0431\u044b\u0442\u0438\u0439. \u0424\u0438\u043b\u044c\u0442\u0440\u0443\u044e \u0432 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u043c \u043b\u043e\u0433\u0435 \u0441\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 (Include). \u0412\u043e\u0442 \u0447\u0442\u043e \u0442\u0430\u043c \u0432\u0438\u0434\u043d\u043e:<\/p>\n<pre><code class=\"cs\">1) \u041f\u043e\u0438\u0441\u043a \u0444\u0430\u0439\u043b\u0430 config: 22:09:36.0364337\tWindowsFormsApplication1.exe\t7388\tQueryOpen\tS:\\WindowsFormsApplication1.exe.config\tNAME NOT FOUND  2) \u041f\u043e\u0438\u0441\u043a \u0444\u0430\u0439\u043b\u0430 INI: 22:09:36.0366595\tWindowsFormsApplication1.exe\t7388\tQueryOpen\tS:\\WindowsFormsApplication1.INI\tNAME NOT FOUND  3) \u041f\u043e\u0438\u0441\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 Local: 22:09:36.0537481\tWindowsFormsApplication1.exe\t7388\tQueryOpen\tS:\\WindowsFormsApplication1.exe.Local\tNAME NOT FOUND <\/code><\/pre>\n<p>  \u0421\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0447\u0442\u043e <a href=\"http:\/\/en.community.dell.com\/techcenter\/powergui\/m\/bits\/20439049\">PowerGUI<\/a> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 PowerShell \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 EXE (\u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0436\u0435 \u0437\u0430\u043f\u0430\u0440\u043e\u043b\u0438\u0442\u044c \u0438\u043b\u0438 \u0441\u0440\u0430\u0437\u0443 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0443\u0436\u0431\u0443).<br \/>  \u0421\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u044b: Untitled.exe \u0438 Untitled.exe.config.<\/p>\n<pre><code class=\"xml\">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt; &lt;configuration&gt; \t&lt;startup useLegacyV2RuntimeActivationPolicy=&quot;true&quot;&gt; \t\t&lt;supportedRuntime version=&quot;v4.0&quot; sku=&quot;.NETFramework,Version=v4.0&quot; \/&gt; \t\t&lt;supportedRuntime version=&quot;v2.0.50727&quot; \/&gt; \t&lt;\/startup&gt;   &lt;runtime&gt;     &lt;loadFromRemoteSources enabled=&quot;true&quot;\/&gt;   &lt;\/runtime&gt; &lt;\/configuration&gt; <\/code><\/pre>\n<p>  .INI \u2014 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443 \u0447\u0442\u043e \u0441\u0431\u043e\u0440\u043a\u0443 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u0417\u043d\u0430\u0447\u0438\u0442 \u0432 Release \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c MSIL, \u0430 JIT-\u043e\u043c \u0443\u0436\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b, \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0431\u0438\u043b\u0434\u0430.<\/p>\n<pre><code class=\"cs\">[.NET Framework Debugging Control] GenerateTrackinglnfo = 1 AllowOptimize = 0 <\/code><\/pre>\n<p>  .Local \u2014 <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms682600(v=vs.85).aspx\">Dynamic-Link Library Redirection<\/a>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0428\u0443\u0442\u043a\u0430 \u043e\u0442 \u0414\u0436\u043e\u043d \u0420\u043e\u0431\u0431\u0438\u043d\u0441\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\u0415\u0441\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u043c\u0435\u0441\u0442\u043e \u043a\u0443\u0434\u0430 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441.<br \/>  HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\Current Version\\Image File Execution Options\\<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b \u0440\u0435\u0435\u0441\u0442\u0440\u0430 MyApp.EXE \u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u043d\u043e\u0432\u043e\u0435 \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 Debugger, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u043b\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u043a \u043e\u0442\u043b\u0430\u0434\u0447\u0438\u043a\u0443 (\u0435\u0441\u043b\u0438 \u0431\u044b), \u043f\u0438\u0448\u0435\u043c calc.exe.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c MyApp.EXE \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440.  <\/div>\n<\/div>\n<p>  1) \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0440\u0438\u0438 C#  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0427\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u043e\u0441\u044c \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445<\/b><\/p>\n<div class=\"spoiler_text\">C# 2.0<br \/>  \u041e\u0431\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0442\u0438\u043f\u044b \u0434\u043e\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0438\u0435 null, \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0441 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430\u043c\u0438, \u0438\u0442\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438 yield. \u0427\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b, \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043a\u043b\u0430\u0441\u0441\u044b, \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u043f\u0441\u0435\u0432\u0434\u043e\u043d\u0438\u043c\u044b \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432 \u0438\u043c\u0435\u043d (\u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u2014 using WinForms = System.Windows.Forms; \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e -FirstAlias::Demo \u0438 SecondAlias::Demo), \u0434\u0435\u0440\u0435\u043a\u0442\u0438\u0432\u044b pragma, \u0431\u0443\u0444\u0435\u0440\u044b \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0432 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u043c \u043a\u043e\u0434\u0435 (fixed byte data[20]).<\/p>\n<p>  C# 3.0<br \/>  LINQ, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430, \u043d\u0435\u044f\u0432\u043d\u0430\u044f \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u043e\u0432 \u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0439 \u0432 \u043c\u0435\u0441\u0442\u0435 \u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u0438\u044f, \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0435 \u0442\u0438\u043f\u044b. \u041b\u044f\u043c\u0431\u0434\u0430 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u0434\u0435\u0440\u0435\u0432\u044c\u044f \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439, \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b.<\/p>\n<p>  C# 4.0<br \/>  \u0418\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b, \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043e\u0431\u043e\u0431\u0449\u0435\u043d\u043d\u0430\u044f \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043d\u043e\u0441\u0442\u044c, \u0442\u0438\u043f dynamic.<\/p>\n<p>  C# 5.0<br \/>  Async\/Await, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0432 \u0446\u0438\u043a\u043b\u0435 foreach, \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0449\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435.  <\/div>\n<\/div>\n<p>  2) \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f x86 \u0438 x64<\/b><\/p>\n<div class=\"spoiler_text\">\u0421\u043e\u0437\u0434\u0430\u044e \u043f\u0443\u0441\u0442\u043e\u0439 \u043a\u043b\u0430\u0441\u0441:  <\/p>\n<pre><code class=\"cs\">class MyClass { } <\/code><\/pre>\n<p>  \u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e \u0432 32 \u0431\u0438\u0442\u0430, \u0443\u0437\u043d\u0430\u044e \u0440\u0430\u0437\u043c\u0435\u0440 \u0432 Windbg:  <\/p>\n<pre><code class=\"cs\">0:005&gt; !do 023849bc Name:        ConsoleApplication1.MyClass MethodTable: 006c39d4 EEClass:     006c1904 Size:        12(0xc) bytes - \u0432\u043e\u0442 \u043e\u043d \u0440\u0430\u0437\u043c\u0435\u0440. File:        E:\\...\\ConsoleApplication1.exe Fields: None <\/code><\/pre>\n<p>  \u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u044e \u0432 64 \u0431\u0438\u0442\u0430:  <\/p>\n<pre><code class=\"cs\">0:003&gt; !do 0000007c8d8465b8 Name:        ConsoleApplication1.MyClass MethodTable: 00007ffa2b5c4320 EEClass:     00007ffa2b6d2548 Size:        24(0x18) bytes File:        E:\\...\\ConsoleApplication1.exe Fields: None <\/code><\/pre>\n<p>  \u041c\u0435\u043d\u044c\u0448\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0435\u0440\u0432\u044b\u0435 4 \u0438\u043b\u0438 8 \u0431\u0430\u0439\u0442 \u2014 \u0441\u043b\u043e\u0432\u043e \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043b\u0443\u0436\u0435\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0430 \u043c\u0443\u0441\u043e\u0440\u0430, \u0444\u0438\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0445\u044d\u0448-\u043a\u043e\u0434\u0430. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0438\u0442\u044b \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442, \u043a\u0430\u043a\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u0432 \u043d\u0435\u043c \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<br \/>  \u0412\u0442\u043e\u0440\u044b\u0435 4 \u0438\u043b\u0438 8 \u0431\u0430\u0439\u0442 \u2014 \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u0432.<br \/>  \u0422\u0440\u0435\u0442\u044c\u0438 4 \u0438\u043b\u0438 8 \u0431\u0430\u0439\u0442 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0432\u044b\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u043d\u0438\u044f, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432 \u043d\u0438\u0445 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435\u0442.<br \/>  \u0418\u0442\u043e\u0433\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441\u0441\u044b\u043b\u043e\u0447\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0434\u043b\u044f x86 \u2014 12 \u0431\u0430\u0439\u0442, x64 \u2014 24 \u0431\u0430\u0439\u0442\u0430.  <\/div>\n<\/div>\n<p>  3) \u041d\u0435\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u043e\u043b\u044f \u0438 \u043c\u0435\u0442\u043e\u0434\u044b \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u043a\u043b\u0430\u0441\u0441\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 (x64).  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043e\u0434\u043d\u043e \u043f\u043e\u043b\u0435 \u0438 \u0430\u0432\u0442\u043e\u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">class MyClass {     private string _field1 = &quot;Some string 1&quot;;     public string Field2 { get; set; } } <\/code><\/pre>\n<p>  IL \u0432\u0438\u0434\u0438\u043c \u0434\u0432\u0430 \u043f\u043e\u043b\u044f:  <\/p>\n<pre><code class=\"cs\">.field private string '&lt;Field2&gt;k__BackingField' .field private string _field1 <\/code><\/pre>\n<p>  \u0418 \u0434\u0432\u0430 \u043c\u0435\u0442\u043e\u0434\u0430:  <\/p>\n<pre><code class=\"cs\">.method public hidebysig specialname instance string get_Field2() cil managed .method public hidebysig specialname instance void set_Field2(string 'value') cil managed <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u0442\u043e \u043a\u0443\u0434\u0430 \u043f\u043e\u043f\u0430\u043b:  <\/p>\n<pre><code class=\"cs\">0:003&gt; !do 0000005400006600 Name:        ConsoleApplication1.MyClass MethodTable: 00007ffa2b5c4378 EEClass:     00007ffa2b6d2548 Size:        32(0x20) bytes File:        E:\\...\\ConsoleApplication1.exe Fields:               MT    Field   Offset                 Type VT     Attr            Value Name 00007ffa89d60e08  4000002        8        System.String  0 instance 0000005400006620 _field1 00007ffa89d60e08  4000003       10        System.String  0 instance 00000054000035a0 &lt;Field2&gt;k__BackingField <\/code><\/pre>\n<p>  \u041f\u043e\u043b\u044f \u043f\u043e\u043f\u0430\u043b\u0438 \u043f\u0440\u044f\u043c\u043e \u043a \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0443, \u0438 \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u0438 \u043d\u0430 \u0435\u0433\u043e \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 (32 \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441 17 \u043f\u043e 24 \u0431\u0438\u0442 \u0437\u0430\u043d\u044f\u043b\u0430 \u043f\u0435\u0440\u0432\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430 (\u0440\u0430\u043d\u0435\u0435 \u0431\u044b\u043b\u0438 \u043f\u0443\u0441\u0442\u044b\u043c\u0438), \u0430 25-32 \u0432\u0442\u043e\u0440\u0430\u044f (\u0447\u0442\u043e \u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0438\u0445 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442). \u041d\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0432 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0435 \u043d\u0435\u0442, \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043d\u0438\u0445, \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u043d\u0438 \u043d\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u043b\u0438 \u043d\u0430 \u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440.<\/p>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043c\u0435\u0442\u043e\u0434\u043e\u0432:  <\/p>\n<pre><code class=\"cs\">0:003&gt; !dumpmt -md 00007ffa2b5c4378 EEClass:         00007ffa2b6d2548 Module:          00007ffa2b5c2fc8 Name:            ConsoleApplication1.MyClass mdToken:         0000000002000003 File:            E:\\...\\ConsoleApplication1.exe BaseSize:        0x20 ComponentSize:   0x0 Slots in VTable: 7 Number of IFaces in IFaceMap: 0 -------------------------------------- MethodDesc Table            Entry       MethodDesc    JIT Name 00007ffa89ae6300 00007ffa896980e8 PreJIT System.Object.ToString() 00007ffa89b2e760 00007ffa896980f0 PreJIT System.Object.Equals(System.Object) 00007ffa89b31ad0 00007ffa89698118 PreJIT System.Object.GetHashCode() 00007ffa89b2eb50 00007ffa89698130 PreJIT System.Object.Finalize() 00007ffa2b6e0390 00007ffa2b5c4358    JIT ConsoleApplication1.MyClass..ctor() 00007ffa2b5cc130 00007ffa2b5c4338   NONE ConsoleApplication1.MyClass.get_Field2() 00007ffa2b5cc138 00007ffa2b5c4348   NONE ConsoleApplication1.MyClass.set_Field2(System.String) <\/code><\/pre>\n<p>  \u0410 \u0432\u043e\u0442 \u0438 \u043e\u043d\u0438, \u043e\u0431\u0430 \u0435\u0449\u0435 \u043d\u0435 \u043f\u0440\u043e\u0448\u043b\u0438 JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e, \u043a\u0440\u043e\u043c\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 \u0438 \u0443\u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043e\u0442 System.Object \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Ngen \u0441\u0435\u0431\u044f \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 .NET.<\/p>\n<p>  \u0412 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0443\u043d\u043a\u0442\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u043b\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 \u0441 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0435\u0433\u043e \u043f\u043e\u043b\u044f:  <\/p>\n<pre><code class=\"cs\">MyClass mcClass = new MyClass(); mcClass.Field2 = &quot;Some string 2&quot;;  0:003&gt; !objsize 0000005400006600 sizeof(0000005400006600) = 144 (0x90) bytes (ConsoleApplication1.MyClass) <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u044d\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0432 \u043d\u0430 \u0440\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u043b\u0435\u0439:  <\/p>\n<pre><code class=\"cs\">0:003&gt; !objsize 0000005400006620 sizeof(0000005400006620) = 56 (0x38) bytes (System.String) 0:003&gt; !objsize 00000054000035a0 sizeof(00000054000035a0) = 56 (0x38) bytes (System.String) <\/code><\/pre>\n<p>  \u0418\u0442\u043e\u0433\u043e: 56 + 56 + 32 = 144.  <\/div>\n<\/div>\n<p>  4) \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043b\u0435 \u0438 \u043c\u0435\u0442\u043e\u0434 (\u044564).  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u044b\u0446<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">class MyClass {     private string _name = &quot;Some string&quot;;     public static string _STR = &quot;I'm STATIC&quot;;     public static void ImStaticMethod() { } }  MyClass mcClass = new MyClass(); Console.WriteLine(MyClass._STR); <\/code><\/pre>\n<p>  \u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u043c\u0435\u0440 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 (\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043b\u0435 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f):  <\/p>\n<pre><code class=\"cs\">0:003&gt; !do 00000033ba2c65f8 Name:        ConsoleApplication1.MyClass MethodTable: 00007ffa2b5b4370 EEClass:     00007ffa2b6c2550 Size:        24(0x18) bytes File:        E:\\...\\ConsoleApplication1.exe Fields:               MT    Field   Offset                 Type VT     Attr            Value Name 00007ffa89d60e08  4000002        8        System.String  0 instance 00000033ba2c6610 _name 00007ffa89d60e08  4000003       10        System.String  0   static 00000033ba2c35a0 _STR <\/code><\/pre>\n<p>  \u0421\u043f\u0438\u0441\u043e\u043a \u043c\u0435\u0442\u043e\u0434\u043e\u0432:  <\/p>\n<pre><code class=\"cs\">0:003&gt; !dumpmt -md 00007ffa2b5b4370 EEClass:         00007ffa2b6c2550 Module:          00007ffa2b5b2fc8 Name:            ConsoleApplication1.MyClass mdToken:         0000000002000003 File:            E:\\...\\ConsoleApplication1.exe BaseSize:        0x18 ComponentSize:   0x0 Slots in VTable: 7 Number of IFaces in IFaceMap: 0 -------------------------------------- MethodDesc Table            Entry       MethodDesc    JIT Name 00007ffa89ae6300 00007ffa896980e8 PreJIT System.Object.ToString() 00007ffa89b2e760 00007ffa896980f0 PreJIT System.Object.Equals(System.Object) 00007ffa89b31ad0 00007ffa89698118 PreJIT System.Object.GetHashCode() 00007ffa89b2eb50 00007ffa89698130 PreJIT System.Object.Finalize() 00007ffa2b6d0110 00007ffa2b5b4350    JIT ConsoleApplication1.MyClass..cctor() 00007ffa2b6d03f0 00007ffa2b5b4348    JIT ConsoleApplication1.MyClass..ctor() 00007ffa2b5bc130 00007ffa2b5b4338   NONE ConsoleApplication1.MyClass.ImStaticMethod() <\/code><\/pre>\n<p>  ConsoleApplication1.MyClass..cctor() \u2014 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044f \u043e\u0431\u0440\u0430\u0442\u0438\u043b\u0441\u044f \u043a \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u0443 \u043f\u043e\u043b\u044e. \u0415\u0433\u043e \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u043e\u043c \u0442\u0438\u043f\u0430, \u0438 \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e. \u041e\u043d \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u0438 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u043b\u0435\u0439. \u0415\u0441\u043b\u0438 \u043d\u0438 \u043a\u0430\u043a\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u0432 \u043d\u0435\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0442\u043e \u043b\u0443\u0447\u0448\u0435 \u043d\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u044f\u0432\u043d\u043e, \u0442.\u043a. \u044d\u0442\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0444\u043b\u0430\u0433\u0430 beforefieldinit \u0432 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439 <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/dd335949.aspx\">msdn.microsoft.com\/ru-ru\/library\/dd335949.aspx<\/a>.<\/p>\n<p>  \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u044b:  <\/p>\n<pre><code class=\"cs\">0:003&gt; !objsize 00000033ba2c65f8 sizeof(00000033ba2c65f8) = 72 (0x48) bytes (ConsoleApplication1.MyClass) 0:003&gt; !objsize 00000033ba2c6610 sizeof(00000033ba2c6610) = 48 (0x30) bytes (System.String) <\/code><\/pre>\n<p>  \u0418\u0442\u043e\u0433\u043e: 24 + 48 = 72.<br \/>  \u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u043e\u043b\u0435 \u043a\u0430\u043a \u0438 \u043c\u0435\u0442\u043e\u0434\u044b, \u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u043a\u043e\u043f\u0438\u0435\u0439 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0435.  <\/div>\n<\/div>\n<p>  5) \u041d\u0430\u0439\u0434\u0435\u043c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0438 \u043a\u0442\u043e \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043e\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u0443\u0441\u043e\u0440\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043b\u044f \u043a\u0443\u0447\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\u0414\u0430\u043d\u043d\u044b\u0435 \u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u0441 3 \u043f\u0443\u043d\u043a\u0442\u0430.  <\/p>\n<pre><code class=\"cs\">0:003&gt; !dumpclass 00007ffa2b6c2550 Class Name:      ConsoleApplication1.MyClass mdToken:         0000000002000003 File:            E:\\...\\ConsoleApplication1.exe Parent Class:    00007ffa89684908 Module:          00007ffa2b5b2fc8 Method Table:    00007ffa2b5b4370 Vtable Slots:    4 Total Method Slots:  6 Class Attributes:    100000   Transparency:        Critical NumInstanceFields:   1 NumStaticFields:     1               MT    Field   Offset                 Type VT     Attr            Value Name 00007ffa89d60e08  4000002        8        System.String  0 instance           _name 00007ffa89d60e08  4000003       10        System.String  0   static 00000033ba2c35a0 _STR <\/code><\/pre>\n<p>  \u0421\u0445\u043e\u0434\u0438\u043c \u043a \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044e:  <\/p>\n<pre><code class=\"cs\">0:003&gt; !dumpclass 00007ffa89684908 Class Name:      System.Object mdToken:         0000000002000002 File:            C:\\WINDOWS\\Microsoft.Net\\assembly\\GAC_64\\mscorlib\\v4.0_4.0.0.0__b77a5c561934e089\\mscorlib.dll Parent Class:    0000000000000000 - \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435\u0442. Module:          00007ffa89681000 Method Table:    00007ffa89d613e8 Vtable Slots:    4 Total Method Slots:  a Class Attributes:    102001   Transparency:        Transparent NumInstanceFields:   0 NumStaticFields:     0 <\/code><\/pre>\n<p>  \u041a\u0442\u043e \u0443\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 mcClass = new MyClass():  <\/p>\n<pre><code class=\"cs\">0:003&gt; !gcroot 00000033ba2c65f8 Thread 3310: 00000033b81fedb0 00007ffa2b6d031f ConsoleApplication1.Program.Main rbx:             -&gt;  00000033ba2c65f8 ConsoleApplication1.MyClass <\/code><\/pre>\n<p>  \u041f\u043e\u0445\u043e\u0436\u0435 \u043d\u0430 \u043f\u0440\u0430\u0432\u0434\u0443.  <\/div>\n<\/div>\n<p>  6) \u041a\u0442\u043e \u0442\u0430\u043a\u043e\u0439 Foreach.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u044b\u0446<\/b><\/p>\n<div class=\"spoiler_text\">1. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 foreach \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0440\u044b\u0442\u0430\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u2014 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440 \u0446\u0438\u043a\u043b\u0430.<\/p>\n<p>  2. \u041e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 foreach \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442 Dispose() \u0432 \u043a\u043e\u043d\u0446\u0435 \u0446\u0438\u043a\u043b\u0430, \u0435\u0441\u043b\u0438 \u0431\u044b\u043b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 IDisposable.<\/p>\n<p>  3. \u041a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0432\u044b\u0437\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 GetEnumerator(), MoveNext() \u0438 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0443 Current.<\/p>\n<p>  4. Foreach \u043a\u0430\u043a \u0438 yield return, LINQ \u2014 \u043b\u0435\u043d\u0438\u0432\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f, \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u0430 \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0447\u0438\u0442\u0430\u0435\u043c \u043c\u0433\u043e\u0433\u043e\u0433\u0438\u0433\u0430\u0431\u0430\u0439\u0442\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043f\u043e \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u0437\u0430 \u0440\u0430\u0437, \u044d\u043a\u043e\u043d\u043e\u043c\u044f \u043f\u0430\u043c\u044f\u0442\u044c.<\/p>\n<p>  5. Foreach \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e Length \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u0442\u043e\u0440 \u043c\u0430\u0441\u0441\u0438\u0432\u0430, \u0430 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0430.<\/p>\n<p>  6. \u0412 C# 5 \u0437\u0430\u0445\u0432\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0446\u0438\u043a\u043b\u043e\u0432 foreach \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0432 \u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u0430\u043a C# 3 \u0438 C# 4 \u0437\u0430\u0445\u0432\u0430\u0442\u044f\u0442 \u043b\u0438\u0448\u044c \u043e\u0434\u0438\u043d \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 (\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439).  <\/div>\n<\/div>\n<p>  7) LINQ  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043b\u0430\u0446<\/b><\/p>\n<div class=\"spoiler_text\">1. LINQ to Object \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0432 JIT \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b (\u0432\u043d\u0443\u0442\u0440\u0438\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043d\u044b\u0439 \u0437\u0430\u043f\u0440\u043e\u0441), LINQ to SQL \u0441\u0442\u0440\u043e\u0438\u0442 \u0434\u0435\u0440\u0435\u0432\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0435\u0433\u043e \u0443\u0436\u0435 SQL, \u0438\u043b\u0438 \u043b\u044e\u0431\u0430\u044f \u0434\u0440\u0443\u0433\u0430\u044f \u0441\u0440\u0435\u0434\u0430. \u0414\u0435\u0440\u0435\u0432\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043e \u0432 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b.<\/p>\n<p>  2. OrderBy \u0434\u043b\u044f LINQ to Objects \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0441\u0435\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>  3. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 Join() \u0432 LINQ to Objects \u043f\u0440\u0430\u0432\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043d\u043e \u0434\u043b\u044f \u043b\u0435\u0432\u043e\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u043e\u043a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043a\u0440\u0443\u043f\u043d\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441 \u043c\u0435\u043b\u043a\u043e\u0439, \u0442\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043f\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043c\u0435\u043b\u043a\u0443\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0443\u044e.<\/p>\n<p>  4. EnumType.Select( x =&gt; x ) \u2014 \u044d\u0442\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u0440\u043e\u0436\u0434\u0435\u043d\u043d\u044b\u043c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0430 \u043d\u0435 \u0441\u0430\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a, \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0430\u0436\u043d\u043e \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. (\u0421\u043f\u0440\u0430\u0432\u0435\u0434\u043b\u0438\u0432\u043e \u0434\u043b\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 LINQ.)  <\/div>\n<\/div>\n<p>  8) \u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041a\u043b\u0438\u043a<\/b><\/p>\n<div class=\"spoiler_text\">List T \u2014 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u043c\u0430\u0441\u0441\u0438\u0432. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u044d\u0442\u043e \u043b\u0438\u0431\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u043c\u0430\u0441\u0441\u0438\u0432\u0435, \u043b\u0438\u0431\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u0432 \u043d\u043e\u0432\u044b\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 (\u043d\u0435\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e) \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f. \u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0438\u0437 List T \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0437\u0430 \u043d\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u044e \u043d\u0430\u0437\u0430\u0434. \u041f\u043e \u0438\u043d\u0434\u0435\u043a\u0441\u0443 RemoveAt() \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0447\u0435\u043c \u043f\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e Remove() (\u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u0433\u0434\u0435 \u0431\u044b \u043e\u043d \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0441\u044f).<\/p>\n<p>  \u041c\u0430\u0441\u0441\u0438\u0432\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443, \u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b \u0432 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>  LinkedList T \u2014 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u0443\u0434\u0430\u043b\u044f\u0442\u044c, \u0432\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043d\u0435\u0442 \u0438\u043d\u0434\u0435\u043a\u0441\u0430, \u043d\u043e \u043f\u0440\u043e\u0445\u043e\u0434 \u043f\u043e \u043d\u0435\u043c\u0443 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c.<\/p>\n<p>  ReadOnlyDictionary \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430 \u044f\u0432\u043d\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u0443\u044e \u0432 \u0435\u0435 \u043e\u0441\u043d\u043e\u0432\u0443 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e.  <\/div>\n<\/div>\n<p>  9) \u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043c\u0435\u0442\u043e\u0434\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043f\u043e\u0439\u043b\u0435\u0440!<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">void Method1( int x ) { x = 5; } IL: .method private hidebysig instance void  Method1(int32 x) cil managed {   \/\/ Code size       4 (0x4)   .maxstack  8   IL_0000:  ldc.i4.5   IL_0001:  starg.s    x   IL_0003:  ret } \/\/ end of method TestClass::Method1  void Method ( int x = 5 ) { } IL: .method private hidebysig instance void  Method([opt] int32 x) cil managed {   .param [1] = int32(0x00000005)   \/\/ Code size       1 (0x1)   .maxstack  8   IL_0000:  ret } \/\/ end of method TestClass::Method <\/code><\/pre>\n<p>  int x \u2014 \u044d\u0442\u043e \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0430. \u0410 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0432 \u043c\u0435\u0442\u0430\u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u0437\u043d\u0430\u0447\u0438\u0442 \u0447\u0442\u043e \u0434\u043b\u044f \u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430\u0434\u043e \u043f\u0435\u0440\u0435\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043a\u043e\u0434. (2 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a, \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 413.)<\/p>\n<p>  \u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 C# 4 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u0435\u0442\u043e\u0434\u0430 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u0434, \u0435\u0441\u043b\u0438 \u0432 \u043d\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b.  <\/div>\n<\/div>\n<p>  10) \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 .NET  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">hacer clic<\/b><\/p>\n<div class=\"spoiler_text\">1. <a href=\"https:\/\/technet.microsoft.com\/ru-ru\/library\/dd744567(v=ws.10).aspx\">\u0421\u0447\u0435\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438<\/a>.<br \/>  \u0421\u0447\u0435\u0442\u0447\u0438\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0435 \u0447\u0430\u0449\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443, \u0430 \u0441\u0430\u043c Performance Monitor \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u043e\u0432 \u0447\u0430\u0449\u0435, \u0447\u0435\u043c \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443.<\/p>\n<p>  2. <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/windows\/desktop\/aa363668(v=vs.85).aspx\">Event Tracing for Windows ETW<\/a>.<br \/>  \u042d\u0442\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439.<\/p>\n<p>  \u0427\u0438\u0442\u0430\u044e\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043e\u0442 ETW:<br \/>  \u0430) <a href=\"https:\/\/www.microsoft.com\/ru-ru\/download\/details.aspx?id=39982\">Windows Performance Toolkit<\/a>.<br \/>  \u0431) <a href=\"http:\/\/bcl.codeplex.com\/wikipage?title=PerfMonitor&amp;referringTitle=Home\">PerfMonitor<\/a>. (\u043e\u0442\u043a\u0440\u044b\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b CLR \u0432 Microsoft.)<br \/>  \u0432) <a href=\"https:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=28567\">PerfView<\/a>. (\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u043e\u043c\u0431\u0430\u0439\u043d \u043e\u0442 Microsoft.)<\/p>\n<p>  3. \u041f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u043f\u0430\u043c\u044f\u0442\u0438 (\u043f\u043e\u043c\u0438\u043c\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0432 VS) <a href=\"https:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=16273\">CLR Profiler<\/a>.<br \/>  \u041c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043a \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c (CLR \u043d\u0435 \u043d\u0438\u0436\u0435 4.0) \u0438\u043b\u0438 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435, \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0441\u0431\u043e\u0440\u043a\u0438 \u043c\u0443\u0441\u043e\u0440\u0430. \u0421\u0442\u0440\u043e\u0438\u0442 \u043a\u0443\u0447\u0443 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432.<\/p>\n<p>  <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/ee329530.aspx\">\u041e\u0431\u0449\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u044b \u0434\u043b\u044f \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u043c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a>.  <\/div>\n<\/div>\n<p>  11) \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u044b\u043a<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">lock ( obj ) { } <\/code><\/pre>\n<p>  \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e, \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u0430 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. CLR \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u00absync block\u00bb \u0432 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u043c \u043c\u0430\u0441\u0441\u0438\u0432\u0435 \u00absync block table\u00bb, \u043e\u043d\u0430 \u0438\u043c\u0435\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442 \u0432\u043b\u0430\u0434\u0435\u044e\u0449\u0438\u0439 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u043e\u0439 \u043f\u043e \u0441\u043b\u0430\u0431\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435 (\u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438) \u0438 \u0435\u0449\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 monitor \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043d\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445 Win32. \u0427\u0438\u0441\u043b\u043e\u0432\u043e\u0439 \u0438\u043d\u0434\u0435\u043a\u0441 \u0431\u043b\u043e\u043a\u0430 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u0441\u043b\u043e\u0432\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0415\u0441\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u044b\u043b \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d, \u0442\u043e \u0435\u0433\u043e \u0441\u0432\u044f\u0437\u044c \u0441 \u0431\u043b\u043e\u043a\u043e\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0442\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u0431\u044a\u0435\u043a\u0442\u0435.<\/p>\n<p>  \u041d\u043e \u043d\u0435 \u0432\u0441\u0435 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0435\u0449\u0435 \u0442\u043e\u043d\u043a\u0430\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 (thin lock). \u0415\u0441\u043b\u0438 \u0431\u043b\u043e\u043a \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0435\u0449\u0435 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043d \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043f\u043e\u0442\u043e\u043a \u0432\u043b\u0430\u0434\u0435\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c, \u0442\u043e \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0436\u0434\u0430\u0442\u044c \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u0433\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0435 \u0438\u0441\u0447\u0435\u0437\u043d\u0435\u0442 \u0438\u0437 \u0441\u043b\u043e\u0432\u0430 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u0430, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442 \u0442\u043e \u0442\u043e\u043d\u043a\u0430\u044f \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0430 \u0432 \u043e\u0431\u044b\u0447\u043d\u0443\u044e.  <\/div>\n<\/div>\n<p>  12) \u0423\u043f\u0430\u043a\u043e\u0432\u043a\u0430.  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u0430\u043a\u0435\u0442 \u043d\u043d\u0430\u0434\u0430<\/b><\/p>\n<div class=\"spoiler_text\">\u0418\u043c\u0435\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443:  <\/p>\n<pre><code class=\"cs\">public struct Point {     public int X;     public int Y; }  List&lt;Point&gt; polygon = new List&lt;Point&gt;(); for ( int i = 0; i &lt; 10000000; i++ ) {     polygon.Add( new Point() { X = rnd.Next(), Y = rnd.Next() } ); }  Point point = new Point { X = 5, Y = 7 }; bool contains = polygon.Contains( point ); <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u043a \u2116 1.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u044b:  <\/p>\n<pre><code class=\"cs\">public override int GetHashCode() {     return (X & Y) ^ X; \/\/ \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0430. }  public override bool Equals( object obj ) {     if ( !( obj is Point ) ) return false;     Point other = ( Point ) obj;     return X == other.X && Y == other.Y; }  public bool Equals( Point other ) {     return X == other.X && Y == other.Y; } <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u043a \u2116 2.<\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 (\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c):  <\/p>\n<pre><code class=\"cs\">public struct Point : IEquatable&lt;Point&gt; { ... } <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u043a \u2116 3.<br \/>  (List T \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 IEquatable T )<\/p>\n<p>  \u041f\u0440\u043e\u0431\u0443\u0435\u043c \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u0442\u0438\u043f:  <\/p>\n<pre><code class=\"cs\">var someType = new { Prop1 = 2, Prop2 = 80000 };  var items = Enumerable.Range( 0, 10000000 )                    .Select( i =&gt; new { Prop1 = i, Prop2 = i+i } )                    .ToList(); items.Contains(someType); <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043c \u0437\u0430\u043f\u0443\u0441\u043a \u2116 4.<br \/>  \u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u0432\u044b\u044f\u0441\u043d\u0438\u043b \u0447\u0442\u043e \u0442\u0438\u043f someType \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u0435\u043d \u0442\u0438\u043f\u0443 \u0432 \u043c\u0435\u0442\u043e\u0434\u0430\u0445 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u0438 \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e.  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0418\u0442\u043e\u0433\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u043e\u0432:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/d9f\/8b8\/39b\/d9f8b839b56c490a8c18ba3014b79b58.png\"\/><\/p>\n<p>  \u0410 \u0432\u043e\u0442 \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0430\u043d\u043e\u043d\u0438\u043c\u043d\u044b\u0439 \u0442\u0438\u043f \u0432 IL:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/0cd\/542\/b1b\/0cd542b1b71f4ed8b0042fe515720bf4.png\"\/>  <\/div>\n<\/div>\n<p>  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0415\u0441\u043b\u0438 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e, \u043a\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 someType \u0432 \u043f\u0430\u043c\u044f\u0442\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cs\">var someType = new { Prop1 = 2, Prop2 = 80000 };  0:005&gt; !do 0000008da2745e08 Name:        &lt;&gt;f__AnonymousType0`2[[System.Int32, mscorlib],[System.Int32, mscorlib]] MethodTable: 00007ffa2b5b4238 EEClass:     00007ffa2b6c2548 Size:        24(0x18) bytes File:        E:\\...\\BoxingUnboxingPointList.exe Fields:               MT    Field   Offset                 Type VT     Attr            Value Name 0...0  4000003        8         System.Int32  1 instance                2 &lt;Prop1&gt;i__Field 0...0  4000004        c         System.Int32  1 instance            80000 &lt;Prop2&gt;i__Field <\/code><\/pre>\n<p>  \u0422\u0438\u043f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u0442 \u0441\u0430\u043c\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u2014 2 \u0438 80000.<\/p>\n<p>  \u0422\u0430\u0431\u043b\u0438\u0446\u0430 \u043c\u0435\u0442\u043e\u0434\u043e\u0432:  <\/p>\n<pre><code class=\"cs\">0:005&gt; !dumpmt -md 00007ffa2b5b4238 EEClass:         00007ffa2b6c2548 Module:          00007ffa2b5b2fc8 Name:            &lt;&gt;f__AnonymousType0`2[[System.Int32, mscorlib],[System.Int32, mscorlib]] mdToken:         0000000002000004 File:            E:\\...\\BoxingUnboxingPointList.exe BaseSize:        0x18 ComponentSize:   0x0 Slots in VTable: 7 Number of IFaces in IFaceMap: 0 -------------------------------------- MethodDesc Table            Entry       MethodDesc    JIT Name 0...8 0...0   NONE &lt;&gt;f__AnonymousType0`2[[...]].ToString() 0...0 0...8   NONE &lt;&gt;f__AnonymousType0`2[[...]].Equals(System.Object) 0...8 0...0   NONE &lt;&gt;f__AnonymousType0`2[[...]].GetHashCode() 0...0 0...0 PreJIT System.Object.Finalize() 0...0 0...8   NONE &lt;&gt;f__AnonymousType0`2[[...]]..ctor(Int32, Int32) 0...8 0...0   NONE &lt;&gt;f__AnonymousType0`2[[...]].get_Prop1() 0...0 0...8   NONE &lt;&gt;f__AnonymousType0`2[[...]].get_Prop2() <\/code><\/pre>\n<p>  \u042f \u0442\u043e\u0436\u0435 \u043e\u0436\u0438\u0434\u0430\u043b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435 \ud83d\ude42  <\/div>\n<\/div>\n<p>  13) Async\/Await  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043d\u0443\u0442\u0440\u0438 \u043e\u043d \u0431\u043e\u043b\u044c\u0448\u0435<\/b><\/p>\n<div class=\"spoiler_text\">Async \u2014 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u043a\u043e\u0434\u0435.<br \/>  Await \u2014 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442, \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430. \u0415\u0441\u043b\u0438 \u043a \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u0432\u0441\u0442\u0440\u0435\u0447\u0438 \u044d\u0442\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0443\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d, \u0442\u043e \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u043c \u0432 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435. \u041f\u043e \u0440\u0430\u0437\u043d\u043e\u043c\u0443 \u0432\u0435\u0434\u0435\u0442 \u0441\u0435\u0431\u044f \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044f\u0445, WinForms, WPF\u2026 \u0427\u0435\u0440\u0435\u0437 <a href=\"https:\/\/msdn.microsoft.com\/ru-ru\/library\/hh194876(v=vs.110).aspx\">Task TResult.ConfigureAwait<\/a> \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u043a\u0430\u043a\u043e\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u0442\u043e\u043a\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<p>  <a href=\"https:\/\/www.youtube.com\/watch?v=fi_N_ghu4Ug\">\u041e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u0432\u0438\u0434\u0435\u043e \u0443\u0440\u043e\u043a \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u043e\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430.<\/a>  <\/div>\n<\/div>\n<p>  14) \u0421\u0431\u043e\u0440\u043a\u0430 \u043c\u0443\u0441\u043e\u0440\u0430  <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0422\u044b\u043a<\/b><\/p>\n<div class=\"spoiler_text\">\u0415\u0441\u043b\u0438 \u0438\u0433\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0437\u0430\u043a\u0440\u0435\u043f\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 \u0432 \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0438 \u00ab0\u00bb, \u0442\u043e CLR \u043c\u043e\u0436\u0435\u0442 \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c \u044d\u0442\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u0435\u0435 \u0441\u0442\u0430\u0440\u0448\u0438\u043c, \u0430 \u0441\u0435\u0431\u0435 \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u043d\u043e\u0432\u043e\u0435.<\/p>\n<p>  \u0412 \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435 \u00ab1\u00bb \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0430\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437 \u00ab0\u00bb, \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u043c\u0435\u044e\u0449\u0438\u0435 \u0444\u0438\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0442\u043e\u0447\u043d\u043e \u043e\u043a\u0430\u0436\u0443\u0442\u0441\u044f \u0432 \u043d\u0435\u043c.<\/p>\n<p>  \u0420\u0430\u0437\u043c\u0435\u0440 \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f \u00ab2\u00bb \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c (\u043a\u043e\u0442\u043e\u0440\u043e\u0439 Windows \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 CLR), \u043d\u043e GC \u043d\u0435 \u0436\u0434\u0435\u0442 \u0435\u0435 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f (\u043a\u0430\u043a\u0438\u0435 \u043d\u0435 \u0437\u043d\u0430\u044e).<\/p>\n<p>  \u041d\u0430 \u0444\u0430\u0437\u0435 \u043c\u0430\u0440\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u043e\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0439 \u043a\u0430\u043a \u0436\u0438\u0432\u043e\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0435\u0440\u044f\u0442\u044c \u0441\u0432\u043e\u044e \u0441\u0441\u044b\u043b\u043a\u0443, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u043f\u0435\u0440\u0435\u0436\u0438\u0432 \u043e\u0434\u043d\u0443 \u0441\u0431\u043e\u0440\u043a\u0443.<\/p>\n<p>  \u0412 Large Object Heap \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0431\u043e\u043b\u044c\u0448\u0435 85 \u043a\u0431\u0430\u0439\u0442, \u043d\u043e \u044d\u0442\u043e \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0443 \u0430 \u043d\u0435 \u0435\u0433\u043e \u0433\u0440\u0430\u0444\u0443 (\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043d\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b). \u0421\u0432\u044f\u0437\u0430\u043d \u0441 \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u0435\u043c \u00ab2\u00bb, \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435.  <\/div>\n<\/div>\n<p>  \u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438:<br \/>  1) \u0414\u0436\u043e\u043d \u0420\u043e\u0431\u0431\u0438\u043d\u0441 \u00ab\u041e\u0442\u043b\u0430\u0434\u043a\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f Microsoft .NET \u0438 Microsoft Windows\u00bb.<br \/>  2) \u0414\u0436\u043e\u043d \u0421\u043a\u0438\u0442 \u00abC# \u0434\u043b\u044f \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u043e\u0432.\u0422\u043e\u043d\u043a\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u00bb, 3 \u0438\u0437\u0434\u0430\u043d\u0438\u0435.<br \/>  3) \u0421\u0430\u0448\u0430 \u0413\u043e\u043b\u0434\u0448\u0442\u0435\u0439\u043d, \u0414\u0438\u043c\u0430 \u0417\u0443\u0440\u0431\u0430\u043b\u0435\u0432, \u0418\u0434\u043e \u0424\u043b\u0430\u0442\u043e\u0432 \u00ab\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 .Net\u00bb.<\/p>\n<p>  \u041c\u043d\u043e\u0433\u043e \u0431\u0443\u043a\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, JIT-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440 \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0442\u043e\u043c.<br \/>  \u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435.     \t<\/p>\n<div class=\"clear\"><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/260047\/\"> http:\/\/habrahabr.ru\/post\/260047\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>     \t<img decoding=\"async\" src=\"https:\/\/habrastorage.org\/files\/8de\/186\/c75\/8de186c756754226b5df4d1de4ecf784.png\"\/><br \/>  \u041f\u0440\u0438\u0448\u043b\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043b\u043e\u0436\u0438\u0442\u044c \u0432\u0442\u043e\u0440\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043e\u043a \u043f\u043e .NET.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-259253","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/259253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=259253"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/259253\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=259253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=259253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=259253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}