Rumah >pembangunan bahagian belakang >C++ >Apakah yang dilakukan oleh Kata Kunci `baru` dalam Tandatangan Kaedah C#?
Memahami Kata Kunci "baharu" dalam Tandatangan Kaedah
Semasa pemfaktoran semula kod, pembangun tersilap memperkenalkan kata kunci baharu ke dalam tandatangan kaedah:
private static new MyObject CreateSomething() { return new MyObject{"Something New"}; }
Ini disusun secara sah dalam C#, menimbulkan persoalan tentang kepentingan kata kunci baharu dalam tandatangan kaedah.
Apakah yang dimaksudkan oleh kata kunci "baharu"?
Seperti yang dinyatakan dalam dokumentasi MSDN, kata kunci baharu dalam tandatangan kaedah mengubah suai tingkah laku rujukannya:
Contoh:
Pertimbangkan kod berikut:
public class A { public virtual void One(); public static void Two(); } public class B : A { public new void One(); public override void Two(); } B b = new B(); A a = b as A; a.One(); // Calls implementation in B a.Two(); // Calls implementation in A b.One(); // Calls implementation in B b.Two(); // Calls implementation in B
Dalam contoh ini, kelas B mentakrifkan semula kedua-dua One kaedah (menggunakan baru) dan kaedah Dua (menggunakan override). Dengan menggunakan baharu untuk One, kelas B menyembunyikan pelaksanaan yang diwarisi dan memperkenalkannya sendiri. Walau bagaimanapun, dengan menggunakan override untuk Dua, ia mengatasi kaedah maya yang diwarisi.
Oleh itu, kata kunci baharu memberikan kefleksibelan dengan membenarkan kaedah yang diwarisi ditindih atau disembunyikan dalam kes di mana penggantian tidak berkenaan, seperti untuk bukan- kaedah maya dan statik.
Atas ialah kandungan terperinci Apakah yang dilakukan oleh Kata Kunci `baru` dalam Tandatangan Kaedah C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!