Fungsi sebaris dalam C#
"Fungsi sebaris" ialah teknik di mana pengkompil memasukkan kod fungsi terus ke lokasi panggilan, dan bukannya memanggilnya sebagai subrutin yang berasingan. Pengoptimuman ini bertujuan untuk menghapuskan overhed panggilan fungsi, seperti hantaran hujah dan arahan panggilan itu sendiri.
Keupayaan untuk menyelaraskan fungsi dalam C# adalah terhad berbanding bahasa lain seperti C. Walau bagaimanapun, bermula dengan .NET 4.5, CLR memberikan petunjuk kepada pengkompil yang mencadangkan kaedah tertentu diselaraskan. Ini dicapai dengan menggunakan atribut MethodImplOptions.AggressiveInlining
dengan nilai MethodImplAttribute
. Dengan menggunakan atribut ini pada kaedah, anda menunjukkan bahawa ia harus dipertimbangkan untuk sebaris.
Contohnya:
<code class="language-csharp">using System.Runtime.CompilerServices; // 添加内联提示 [MethodImpl(MethodImplOptions.AggressiveInlining)] void MyMethod(...)</code>
CLR menggunakan pembayang ini untuk menentukan sama ada untuk memanggil kaedah sebaris semasa penjanaan kod. Ia mengambil kira faktor seperti saiz dan kerumitan kaedah dan tahap pengoptimuman yang didayakan oleh pengkompil.
Adalah penting untuk ambil perhatian bahawa sebaris tidak dijamin dan pengkompil boleh memilih untuk tidak menyelaraskan kaedah walaupun jika pembayang disediakan. Keputusan ini adalah berdasarkan pelbagai heuristik pengoptimuman dan pertukaran prestasi.
Atas ialah kandungan terperinci Bagaimanakah Fungsi Inlining Berfungsi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!