anahtar kelime yeni yöntem imzası
Bir yeniden düzenleme yaparken, bu örnekte olduğu gibi bir yöntem aşağıda oluşturma sona erdi. Veri basitlik aşkına değiştirildi.
Ben önceki böyle bir atama deyimi vardı:
MyObject myVar = new MyObject();
Kazara bu refactored oldu:
private static new MyObject CreateSomething()
{
return new MyObject{"Something New"};
}
Bu benim için kes/yapıştır bir hata sonucu oldu, ama private static new
new
anahtar kelime geçerlidir ve derler.
Soru: new
anahtar kelime yöntem bir imza ne anlama geliyor? Bir şey tanıtılan C# 3.0 olduğunu zannediyorum.
Bu nasıl override
farkı nedir?
CEVAP
Msdn'den yeni anahtar kelime referans:
Burada iyi mantıklı bir Microsoft MVP gelen internette bulduğum bir örnek: Link to Original
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
Geçersiz kılma sadece çok özel durumlarda kullanılabilir. MSDN:
Sen geçersiz kılamaz sanal olmayan bir ya statik yöntem. Geçersiz kılınmış temel yöntem sanal, soyut, ya da olmalıdır geçersiz kılar.
'Bir' anahtar kelime 'geçersiz' ve statik yöntemler sanal olmayan. izin için gerekli yeni yani
Eğer gizleme amacı eğer yeni bir anaht...
C yeni anahtar kelime kullanmalıyım ?...
Neden anahtar kelime "son" J...
Kod '' zincirleme SERİ anaht...
=C 11'de varsayılan yeni anahtar kelim...