Rumah >pembangunan bahagian belakang >C++ >Mengapa Tanda Kurung Pembina Pilihan Dibenarkan dalam Pemula Objek C#?
Sebab mengapa pemula objek C# membenarkan kurungan pembina ditinggalkan
C# 3.0 memperkenalkan pemula objek, yang sintaks pilihannya membenarkan kurungan dalam pembina ditinggalkan dalam kes di mana pembina mempunyai pembina tanpa parameter. Seperti yang diterangkan oleh bekas ketua pasukan pengkompil C#, Mads Torgersen, ciri ini mempunyai beberapa kelebihan:
Pertimbangan reka bentuk:
Pelaksanaan teknikal:
Elakkan kekaburan:
Walaupun kurungan dibenarkan ditinggalkan dalam pemula objek, ia masih diperlukan dalam ungkapan penciptaan objek tanpa pemula objek. Ini kerana meninggalkan kurungan dalam kes ini boleh mewujudkan kesamaran, seperti dalam contoh berikut:
<code class="language-csharp">class P { class B { public class M { } } class C : B { new public void M(){} } static void Main() { // 调用默认构造函数,然后是方法 M new C().M(); // 1 // 使用默认构造函数创建一个新的 B.M 实例 new C.M(); // 2 } }</code>
Jika anda meninggalkan kurungan pilihan pada baris 1, pengkompil tidak boleh menentukan sama ada untuk memanggil pembina lalai C atau mencipta tika B.M baharu. Ini akan membawa kepada kekaburan semantik dan kemungkinan ralat.
Oleh itu kurungan pembina pilihan dihadkan kepada pemula objek, di mana mengabaikannya tidak menimbulkan sebarang risiko kepada sintaks atau semantik bahasa.
Atas ialah kandungan terperinci Mengapa Tanda Kurung Pembina Pilihan Dibenarkan dalam Pemula Objek C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!