C# 有没有办法让派生类重写ToString()?

C# 有没有办法让派生类重写ToString()?,c#,.net,inheritance,interface,tostring,C#,.net,Inheritance,Interface,Tostring,(我在.NET4.0Beta版中工作,C#) 我有一个接口,从这个接口派生的所有类都应该实现自定义ToString()逻辑。这是可执行的吗?如果是,怎么做?不通过接口 您需要为此使用一个抽象类 --编辑 您只需将“ToString”重新声明为抽象: abstract class Foo { public override abstract string ToString (); } 如果您需要一个类来重写ToString(),那么这意味着ToString()的契约比通常使用的契约更强。

(我在.NET4.0Beta版中工作,C#)


我有一个接口,从这个接口派生的所有类都应该实现自定义
ToString()
逻辑。这是可执行的吗?如果是,怎么做?

不通过接口

您需要为此使用一个抽象类

--编辑

您只需将“ToString”重新声明为抽象:

abstract class Foo
{
    public override abstract string ToString ();
}

如果您需要一个类来重写
ToString()
,那么这意味着
ToString()
的契约比通常使用的契约更强。如果是这样,那么定义一个单独的方法,而不是重用
ToString()
,可能是更好的选择。这是可能的。我的情况是,我想让人们知道“如果你在任何类型的
IMyInterface
类上调用
ToString()
,你会得到一些与每个
IMyInterface
应该包含的独特数据类型有关的东西,而不仅仅是通常的实现,它会给你一些类似于类IIRC名称的东西。