using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test
{
abstract class A
{
protected abstract string ToString(A a);

public sealed override string ToString()
{
return ToString(this);
}
}

class B : A
{
protected override string ToString(A a)
{
return a.ToString(a);
}
}
}

なぜコンパイルエラー?
無限ループしてるとか実用上の問題は無視してくれ。

エラー CS1501: 引数を '1' 個指定できる、メソッド 'ToString' のオーバーロードはありません。