有像这样的:如何使用方法实现基类并强制派生类覆盖它?
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
}
}
我读到另一篇文章(abstract method in a virtual class)女巫是相当喜欢我的问题,但有一点区别。我想AAA.ToString()有一个基本行为和强制派生类来覆盖它。
我知道我可以做这样的事情(向下滚动),但我正在寻找一个合适的方式。
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
}
}
我也大概可以做一个IAAA接口,并建立我的BBB级像
public class BBB : AAA, IAAA { ... }
但不看我的权利。
谢谢,您的编辑让我意识到一些重要的东西!即使我会找到奇迹的方式来在基类中定义ToString()并强制派生类中的重写,但我根本没有办法强制重写使用ToString()!我还发现了一个关于强制覆盖的MVP的帖子:http://social.msdn.microsoft.com/forums/en-US/csharplanguage/thread/c25b6477-b990-4284-abaf-801ddf18207c。再次感谢先生。 – Tipx 2009-08-25 03:46:25
很高兴为您服务。这篇文章是由Marc Gravell撰写的......他也很出名:) – 2009-08-25 04:07:10
这与以下张贴的答案比较如何? – Armbrat 2009-08-26 00:45:19