Açıklama sürümüm , farklılıkları anlamaya yardımcı olması için özellikleri kullanmaktan geliyor .
override
yeterince basit, değil mi? Altta yatan tür , üst öğeyi geçersiz kılar .
new
belki de yanıltıcıdır (benim için öyleydi). Özelliklerle anlaşılması daha kolaydır:
public class Foo
{
public bool GetSomething => false;
}
public class Bar : Foo
{
public new bool GetSomething => true;
}
public static void Main(string[] args)
{
Foo foo = new Bar();
Console.WriteLine(foo.GetSomething);
Bar bar = new Bar();
Console.WriteLine(bar.GetSomething);
}
Bir hata ayıklayıcı kullanarak Foo foo
, 2 GetSomething
özelliğe sahip olduğunu fark edebilirsiniz , çünkü aslında Foo
's ve Bar
' özelliklerinin 2 sürümüne sahiptir ve hangisini kullanacağını bilmek için, c # geçerli tür için özelliği "seçer".
Çubuğun sürümünü kullanmak isterseniz, Foo foo
bunun yerine geçersiz kılmayı veya kullanmayı kullanırdınız.
Bar bar
tamamen yeni bir davranış istediği için sadece 1 vardır .GetSomething
new
override