Rumah > pembangunan bahagian belakang > C++ > Apakah Maksud Kata Kunci `baru` dalam Tandatangan Kaedah C#?

Apakah Maksud Kata Kunci `baru` dalam Tandatangan Kaedah C#?

Patricia Arquette
Lepaskan: 2025-01-03 02:17:39
asal
638 orang telah melayarinya

What Does the `new` Keyword Mean in a C# Method Signature?

Memahami Kata Kunci baharu dalam Tandatangan Kaedah

Semasa memfaktorkan semula kod, tandatangan kaedah yang luar biasa muncul:

private static new MyObject CreateSomething()
{
  return new MyObject{"Something New"};
}
Salin selepas log masuk

Soalan: Apakah kepentingan kata kunci baharu dalam tandatangan kaedah ini? Adakah ia satu ciri yang diperkenalkan dalam C# 3.0? Bagaimanakah ia berbeza daripada penggantian?

Jawapan:

Kata kunci baharu dalam tandatangan kaedah mempunyai tujuan yang berbeza daripada penggantian. Menurut dokumentasi MSDN Microsoft, ia membenarkan untuk menyembunyikan ahli yang diwarisi.

Contoh yang menggambarkan perbezaan:

public class A
{
   public virtual void One();
   public void Two();
}

public class B : A
{
   public override void One();
   public new 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
Salin selepas log masuk

Dalam contoh ini, override digunakan pada kaedah One untuk mengatasi pelaksanaannya dalam kelas asas A. Sebaliknya, baru digunakan pada kaedah Dua untuk menyembunyikan pelaksanaan yang diwarisi daripada A.

Perbezaan Utama:

override mengubah suai kaedah maya atau abstrak untuk menyediakan pelaksanaan berbeza dalam kelas terbitan. Sebaliknya, ahli warisi baharu menyembunyikan, baik maya dan bukan maya, membenarkan pelaksanaan baharu disediakan dalam kelas terbitan.

Atas ialah kandungan terperinci Apakah Maksud Kata Kunci `baru` dalam Tandatangan Kaedah C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan