Açıklama sürümüm , farklılıkları anlamaya yardımcı olması için özellikleri kullanmaktan geliyor .
overrideyeterince basit, değil mi? Altta yatan tür , üst öğeyi geçersiz kılar .
newbelki 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 foobunun yerine geçersiz kılmayı veya kullanmayı kullanırdınız.
Bar bartamamen yeni bir davranış istediği için sadece 1 vardır .GetSomething
newoverride