Windows lalai dalam VB.NET dan C#: Perbezaan dalam dua bahasa
Pengenalan
Pengaturcara yang berpaling dari VB.NET ke C#sering meragui mengapa tidak ada tingkap di C#tanpa contoh lalai tetingkap. Artikel ini menerangkan butiran tema ini, membincangkan asal -usul, perbezaan dan batasan contoh lalai dalam VB.NET, dan sebab -sebab kekurangan contoh lalai dalam C#.
Asal contoh lalai
Dalam vb.net, tetingkap adalah unik dalam ruang nama melalui atribut namanya. Atribut nama ini juga mudah untuk contoh lalai tetingkap. Fungsi ini membolehkan pemaju menggunakan namanya secara langsung untuk mengakses tetingkap, walaupun tidak ada contoh penciptaan yang jelas. Sebagai contoh, dalam vb.net, anda boleh menggunakan untuk memaparkan tetingkap tanpa perlu memberi instantiate objek terlebih dahulu.
Perbezaan pelaksanaan Form1.Show()
Form1
. Ini kerana C#mengikuti lebih banyak objek berorientasikan kelas, di mana contoh kelas berbeza dari kelas itu sendiri. kod IL yang dihasilkan
Show()
Menariknya, kod IL yang dihasilkan oleh kedua -dua bahasa mendedahkan perbezaan yang lebih mendalam. Dalam vb.net, contoh lalai dinyatakan sebagai kaedah statik pada kelas tetingkap. Sebaliknya, dalam C#, kaedah
Kelebihan dan batasan
Mekanisme contoh lalai dalam VB.NET menyediakan pintasan untuk pengaturcara yang ingin mengakses tetingkap secara langsung. Ia juga selaras dengan jangkaan pengaturcara VB6 yang biasa bekerja tanpa contoh yang jelas. Walau bagaimanapun, kemudahan ini mahal. Kaedah yang dihasilkan oleh statik tidak dapat menerima parameter, menjadikannya tidak selesa dengan kaedah contoh.
Show()
Kaedah bersamaan dalam C#
Walaupun C#sendiri tidak menyokong contoh lalai tetingkap, ia dapat mensimulasikan tingkah laku ini dengan membuat atribut statik global yang mengembalikan contoh -kelas tetingkap. Walau bagaimanapun, kaedah ini tidak cukup ringkas dan memerlukan kod model tambahan.
Kesimpulan Show()
Atas ialah kandungan terperinci Mengapa VB.NET mempunyai contoh borang lalai semasa C# tidak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!