有像這樣的:如何使用方法實現基類並強制派生類覆蓋它?
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