Having şey:Bir Yöntemle Temel Sınıf Nasıl Uygulanır ve Türetilmiş Sınıfı Geçersiz Kılmaya Zorlama? Bu böyle
public abstract class AAA
{
protected abstract virtual string ToString() // Error
{
// Base Stuff
}
}
public abstract class BBB : AAA
{
public override string ToString()
{
// Use base.ToString();
// More Stuff
}
}
başka yazı okuyun (abstract method in a virtual class) cadıydı oldukça benim soru gibi, ama biraz fark var. Ben AAA.ToString() bir taban davranışı ve olması için türetilmiş sınıfı geçersiz kılmak için zorlamak istiyorum.
Bunun gibi bir şey yapabileceğimi biliyorum (aşağı kaydırın) ancak uygun bir yol arıyordum.
public abstract class AAA
{
public abstract string ToString();
protected string ToString2()
{
// Base Stuff
}
}
public class BBB : AAA
{
public override string ToString()
{
// Use base.ToString2();
// More Stuff
}
}
Ben de muhtemelen Iaaa arabirimi yapmak ve
public class BBB : AAA, IAAA { ... }
gibi benim BBB sınıfını oluşturmak ama bana doğru görünmüyor olabilir.
sayesinde Düzenlemeniz beni önemli bir şey fark ettirdi! Taban sınıfında ToString() öğesini tanımlamak ve türetilmiş sınıftaki geçersiz kılmayı zorlamak için bir mucize yol bulsaydım bile, ToString() işlevini kullanmak için geçersiz kılmanın hiçbir yolu yoktur. Ayrıca bu yazıyı bir http://social.msdn.microsoft.com/forums/en-US/csharplanguage/thread/c25b6477-b990-4284-abaf-801ddf18207c geçersiz kılma hakkında bir MVP tarafından buldum. Tekrar teşekkürler. – Tipx
Hizmete sevindim. Bu yazı Marc Gravell tarafından ... O da çok iyi bilinir :) –
Bu, aşağıda yayınlanan OP'lerin cevabı ile nasıl karşılaştırılır? Metot Şablonu için – Armbrat